定義枚舉 Weather { Sunny, Rainy, Cloudy },希望覆寫 toString() 直接輸出枚舉常量名稱(如 "Sunny")。
無需手動覆寫 toString()! Java 枚舉繼承自 java.lang.Enum,已提供完美的預設實現:
toString():返回枚舉常量名稱(如 "Sunny"),可直接用於打印、拼接字符串。name():同樣返回常量名稱,為 final 方法,不可覆寫,語義更明確。public enum Weather { Sunny, Rainy, Cloudy }
public static void main(String[] args) {
Weather w = Weather.Sunny;
System.out.println(w); // 輸出: Sunny (隱式調用 toString())
System.out.println(w.toString()); // 輸出: Sunny
System.out.println(w.name()); // 輸出: Sunny
}
若需自定義顯示文本(如中文「晴天」),可添加字段與構造方法:
public enum Weather {
Sunny("晴天"), Rainy("雨天"), Cloudy("陰天");
private final String desc;
Weather(String desc) { this.desc = desc; }
public String getDesc() { return desc; }
@Override public String toString() { return desc; } // 覆寫以改變打印行為
}
但絕大多數場景下,直接使用預設 toString() 即可,簡潔且符合規範。