將列舉轉換為 String
有時你想將列舉轉換為 String,有兩種方法可以做到這一點。
假設我們有:
public enum Fruit {
APPLE, ORANGE, STRAWBERRY, BANANA, LEMON, GRAPE_FRUIT;
}
那麼我們如何將像 Fruit.APPLE
這樣的東西轉換成 APPLE
呢?
使用 name()
轉換
name()
是 enum
中的一個內部方法,它返回列舉的 String
表示,返回 String
精確表示列舉值的定義方式。
例如:
System.out.println(Fruit.BANANA.name()); // "BANANA"
System.out.println(Fruit.GRAPE_FRUIT.name()); // "GRAPE_FRUIT"
使用 toString()
轉換
預設情況下,toString()
被覆蓋以具有與 name()
相同的行為
然而,toString()
很可能被開發者所取代,使其列印出更加使用者友好的知識
如果你想檢查你的程式碼,請不要使用
toString()
,name()
更穩定。當你要將值輸出到日誌或標準輸出或其他內容時,僅使用toString()
預設情況下:
System.out.println(Fruit.BANANA.toString()); // "BANANA"
System.out.println(Fruit.GRAPE_FRUIT.toString()); // "GRAPE_FRUIT"
被覆蓋的示例
System.out.println(Fruit.BANANA.toString()); // "Banana"
System.out.println(Fruit.GRAPE_FRUIT.toString()); // "Grape Fruit"