示例
有時您想将枚舉轉換為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()可能會被開發人員覆寫,以使其列印更加使用者友好StringtoString()如果要檢查代碼,請不要使用,因為這樣做name()更加穩定。僅toString()在将值輸出到日志或stdout等時使用
預設:
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"