Я использую оператор 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();
}
}
Первый вопрос: «Есть ли ошибки в синтаксисе этих двух классов?»
Второй вопрос: «Если нет, то почему результат противоположен тому, что я ожидал?»
Выход:
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"