我在另一個類調用的類的方法中使用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();
}
}
第一個問題: 「?有沒有在這兩個類的語法的錯誤」
第二個問題:「如果不是,爲什麼輸出與我期望的相反?」
輸出:
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 2012-01-14 18:23:50
第一個答案:ENUM_TYPE.TYPE1對於calling_foo是未知的。如果我使用了called_foo之一,它可以像預期的那樣工作。 – tim 2012-01-14 18:29:35
@tim'ENUM_TYPE.TYPE1'沒問題我想,我已經在其他部分使用了這種語法,它不會給出任何問題 – Matteo 2012-01-14 18:30:31