Java 反编译器代码错误

Java 反编译器代码错误,java,compiler-errors,null,Java,Compiler Errors,Null,有人能帮我修一下这个密码吗。$SwitchMap$uk$ac$aber$dcs$blockmotion$gui$Direction和inputmatchexception出现编译错误,我应该写什么 下面是整个函数。如果有人能给我一个简短的解释,让我了解发生了什么事,我会非常感激 private void setSlideNumber(String msg, Direction direction) { boolean tryAgain = true; do {

有人能帮我修一下这个密码吗。$SwitchMap$uk$ac$aber$dcs$blockmotion$gui$Direction和inputmatchexception出现编译错误,我应该写什么

下面是整个函数。如果有人能给我一个简短的解释,让我了解发生了什么事,我会非常感激

 private void setSlideNumber(String msg, Direction direction) {

    boolean tryAgain = true;

    do {
        System.out.println(msg);

        try {
            int ime = Math.abs(this.in.nextInt());
            switch(null.$SwitchMap$uk$ac$aber$dcs$blockmotion$gui$Direction[direction.ordinal()]) {
                case 1:
                    this.slideHorizontalLeftNum = -ime;
                    ((SlideTransformer)this.slideHorizontallyLeftTransformer).setAmount(this.slideHorizontalLeftNum);
                    break;
                case 2:
                    this.slideHorizontalRightNum = ime;
                    ((SlideTransformer)this.slideHorizontallyRightTransformer).setAmount(this.slideHorizontalRightNum);
                    break;
                case 3:
                    this.slideVerticalUpNum = -ime;
                    ((SlideTransformer)this.slideVerticallyUpTransformer).setAmount(this.slideVerticalUpNum);
                    break;
                case 4:
                    this.slideVerticalDownNum = ime;
                    ((SlideTransformer)this.slideVerticallyDownTransformer).setAmount(this.slideVerticalDownNum);
            }

            tryAgain = false;
        } catch (InputMismatchException var8) {
            System.out.println("Please type a valid number");
        } finally {
            this.in.nextLine();
        }
    } while(tryAgain);

}
顺便说一下,方向是一个枚举

这是滑动变压器的课程

public abstract class SlideTransformer implements Transformer {
    int amount;

    public SlideTransformer(int amount) {
        this.amount = amount;
    }

    public int getAmount() {
        return this.amount;
    }

    public void setAmount(int amount) {
        this.amount = amount;
    }
}
现在,枚举方向的代码为:

public enum Direction {
    LEFT,
    RIGHT,
    UP,
    DOWN;

    private Direction() {
    }
}

你那奇怪的代码来自一个类的反编译

切换是在方向枚举的序数值上进行的,因此只需替换:

switch(null.$SwitchMap$uk$ac$aber$dcs$blockmotion$gui$Direction[direction.ordinal()]) 

请注意,我们通常直接切换枚举,并使用其不同的值,这要简单得多:

switch(direction){

    case LEFT :...
    case RIGHT : ...
    ...

}

空值是什么。$SwitchMap$uk$ac$aber$dcs$blockmotion$gui$Direction输入不匹配异常的错误是什么?您从哪里得到空值的想法。$SwitchMap$uk$ac$aber$dcs$blockmotion$gui$Direction[Direction.ordinal]是正确的Java吗?我从.class得到它,我需要它使它在实际的.Java null中工作。$SwitchMap$uk$ac$aber$dcs$blockmotion$gui$Direction和uk/ac/aber/dcs/bloockmotion/gui引用包方向引用包内的枚举
switch(direction){

    case LEFT :...
    case RIGHT : ...
    ...

}