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