將列舉轉換為 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"