如果你有一個Java enum
和枚舉的類型的變量,像這樣:爲什麼Java需要EnumClass.VALUE而不是VALUE?
public enum Something
{
VAL1,
VAL2,
VAL3
}
public Something varName;
爲什麼有必要寫varName = Something.VAL1;
而不是簡單地varName = VAL1;
?編譯器不應該知道varName
的類型只能將null
,VAL1
,VAL2
和VAL3
作爲值嗎?
編號枚舉值不是全局的(除了在開關,它似乎)。 – Jashaszun
如果'Something'實現了一個接口(例如'Serializable'),並且您想要將'varName'聲明爲'Serializable',那該怎麼辦?編譯器如何知道你正試圖從那個特定的枚舉中聲明,而不是其他任何可序列化的類型呢?該語言旨在允許將變量作爲其任何超類型進行輸入,並且這對使用您的建議枚舉聲明樣式是不可能的。 – Vulcan