2017-04-05 5 views
0

誰かがこのコードを修正するために私を助けることができますか? $SwitchMap$uk$ac$aber$dcs$blockmotion$gui$DirectionInputMismatchExceptionでコンパイルエラーが発生する代わりに何を書き込む必要がありますか?逆コンパイラコードエラー

以下は機能全体です。誰かが私に何が起こっているのかを理解させるための簡単な説明を与えることができたら、本当に感謝します。ところで

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); 

} 

Directionは、列挙型

であり、これは今、スライドトランス

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() { 
    } 
} 
+2

これはなんですか? $ SwitchMap $ uk $ ac $ aber $ dcs $ blockmotion $ gui $ Direction – Arvindsinc2

+1

'InputMismatchException'のエラーは何ですか? –

+0

どこから 'null。$ SwitchMap $ uk $ ac $ aber $ dcs $ blockmotion $ gui $ Direction [direction.ordinal()]'というアイデアが正しいのでしょうか? –

答えて

1

あなた奇妙なコードは、クラスの逆コンパイルから来ます。

switchがこれだけ置き換え、Direction enumの序数で構成されています

switch(direction.ordinal()) 

列挙型の直接我々は通常switch注意と

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

を、そしてその異なる値を使用し、

switch(direction){ 

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

}