通常,switch語句中不需要缺省值。但是,在以下情況下,僅在取消註釋默認語句時才能成功編譯代碼。有人可以解釋爲什麼嗎?爲什麼在此代碼中的枚舉開關需要默認值?
public enum XYZ {A,B};
public static String testSwitch(XYZ xyz)
{
switch(xyz)
{
case A:
return "A";
case B:
//default:
return "B";
}
}
還有`null`。 – rlibby 2011-02-16 06:36:30
是的,我不是爲什麼編譯器無法弄清楚XYZ只有2個元素。由於它將XYZ識別爲一種類型,因此它顯然已經進入代碼的一部分,並且應該能夠註冊僅存在兩個可能元素的事實。 – 2011-02-16 06:36:59
@rlibby:我記得測試null是爲了看看它是否有所作爲,我認爲它沒有。但我會再檢查一次。 – apoorv020 2011-02-16 06:37:31