私は別のクラスによって呼び出されたクラスのメソッドでswitch文を使用しています。Javaのswitch文は反対の場合を選択します
Switchステートメントは、enum
タイプを表す変数を入力として取得します。呼ばれるクラス
:
public class called_foo {
public static enum ENUM_TYPE {
TYPE2, TYPE1
}
public void method(ENUM_TYPE type){
switch(type){
case TYPE1: System.out.println("TYPE1");
break;
case TYPE2: System.out.println("TYPE2");
break;
default: System.out.println("Error in retrieving Type");
System.exit(1);
}
}
}
クラスを呼び出す:
public class calling_foo {
public void run(){
called_foo cf = new called_foo();
cf.method(ENUM_TYPE.TYPE1);
}
public static void main(String[] args) throws Exception {
calling_foo f = new calling_foo();
f.run();
}
}
最初の質問: "エラーがこの2つのクラスの構文ではありますが?"
2番目の質問:「そうでない場合、なぜ出力が私が期待しているものと反対ですか?」
出力:
if I call cf.method(ENUM_TYPE.TYPE1); I see on screen "TYPE2"
if I call cf.method(ENUM_TYPE.TYPE2); I see on screen "TYPE1"
構文エラーがあるとコンパイラはコンパイルされません;) – TimWolla
最初の回答:ENUM_TYPE.TYPE1はcalling_fooには不明です。 called_fooの1つを使用すると、期待通りに動作します。 – tim
@tim 'ENUM_TYPE.TYPE1'は大丈夫だと思いますが、私はすでにこの構文を他の部分で使っていますが、何の問題もありません。 – Matteo