可能重複:
Why do I get an Enum constant reference cannot be qualified in a case label?編譯錯誤 - 用枚舉開關
嗨, 是否有人知道爲什麼,當我切換枚舉,情況應該是不合格的枚舉值?
例子:
switch(var) {
case Enum.FIRST:
break;
}
是非法
但:
switch(var) {
case FIRST:
break;
}
是合法的。
我知道var是一個特定類型(Enum),但爲什麼編譯器會在乎我是否使用Enum值的完全限定名?
我們想念在此發生的範圍,以及在Enum的定義,並完全引用的編譯器錯誤。謝謝。 – 2011-04-05 12:16:15
@用戶不詳,問題很明確,我認爲 – 2011-04-05 12:19:02
區別在於上下文。在第一種情況下,它在相應的實例(對象)中的值。第二種情況是Enum中的類變量。交換機對在switch子句中使用的實例中定義的變量起作用。它的規格定義如此。 – 2011-04-05 12:21:55