のドキュメントを読んだ後、いつname()を使用するのか、いつtoString()String java.lang.Enum.name()
を使用するのか理解できません。
enum 宣言で宣言されているとおりに、この enum 定数の名前を返します。toString メソッドはよりユーザーフレンドリーな名前を返す可能性があるため、ほとんどのプログラマーは、これよりも toString メソッドを使用する必要があります。このメソッドは主に、リリースごとに異なることのない正確な名前の取得に依存する特殊な状況で使用するために設計されています。
特に、ドキュメンテーションには を好むと書かれていますがtoString()
、Java 独自のStandardLocation列挙はname
、ドキュメンテーションで別の方法が提案されていると思われる場合に使用します。
public String getName() { return name(); }
さらに、次のようにEnum
実装toString()
します。
public String toString() {
return name;
}
そして、ユーザー定義の列挙が上書きされ、ほとんどの場合まったく同じになる状況は考えられtoString()
ませname()
んtoString()
。
- ドキュメントを無視して常に使用
name()
することが悪い考えである理由を説明してください。 - 「リリースごとに変わらない」というフレーズはどうですか。名前が変わらない場合、それは変わることを意味し
java.lang.Enum.toString()
ますか?