首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Java 枚舉類型輸出最佳實踐:直接使用 toString() 或 name()

     編輯:程式設計疑難解答

問題描述

定義枚舉 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() 即可,簡潔且符合規範。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved