2013-11-01 69 views
-2

當你說枚舉在java中是不變的,你究竟是什麼意思?「Enum in java are set of predefined constants」是什麼意思?

什麼類型的常量(整數常量,字符常量,字符串常量)是他們?

爲什麼Java系統不抱怨當我使用枚舉作爲開關情況值?

至於我知道之前1.7 switch語句接受byte,short,int或char作爲case值。因此,當有人說enum是恆定的,它們可以用在switch case中時,它們表示什麼類型的常量,因爲switch只接受byte,short,int或char

例如字符串常量,它們是在java 1.7中添加的,是否有自1.5以來,他們正在使用開關的情況下值和現在從Java 1.7的話我可以使用字符串作爲開關情況下的值?

Java如何處理開關情況下的枚舉,它是否使用ordinal()枚舉值?

+0

另請參閱:http://stackoverflow.com/questions/10387329/using-string-representations-of-enum-values-in-switch-case和http://stackoverflow.com/questions/338206/switch-語句與字符串在java –

+0

http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html這應該有助於 – 2013-11-01 00:31:53

+0

@FlightOdyssey其實你指出的是完全相反的我問?但是這很好,可能我會認爲在清除了目前的這種懷疑之後呢? – geecatc

回答

0

我想我知道你在問什麼。枚舉是常量,因爲它們在運行時無法更改。

您可以在它們上使用switch語句,因爲有預定義數量的元素,因此編譯器知道何時覆蓋了所有的情況。

+0

那麼這是否意味着如果我創建一個10常量對象的數組列表,我可以在switch語句中使用該列表? – geecatc

+0

不,因爲數組列表本身不是固定的 – Todoy

+0

是數組列表不是固定的,但我正在考慮不可變列表。 http://stackoverflow.com/questions/3700971/immutable-array-in-java。好吧,在閱讀完有關不可變列表後,我想現在明白爲什麼我不能使用列表。但實際的問題仍然**什麼類型的常數是枚舉常量?** – geecatc