• ベストアンサー

Enumのname()とtoString()の違いについて

J2SE5.0から追加されたEnumを使ってみようと勉強中です。 Enumの要素の識別名を取得するためのメソッドとしてname()とtoString()の2つがありますが、違いは何なのでしょうか? APIドキュメントによると『name()よりtoString()を使う方がいい』というようなことが書かれていますが、その理由がわかりません。 同じくAPIドキュメントに『toString()はユーザフレンドリな値を返す』という記述があって、これの意味もよくわからず悩んでいます。。。 どなたか、ご教授ください。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>カスタマイズされている可能性があるのでtoString()を呼んだ方がいいということですね。 そうですね。 素のままでは、同じですけど、よりわかりやすいような表現を得る可能性があるということですね。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

APIドキュメントを読んでみましたが、 toString()は、オーバーライドできるので、カスタマイズ(ユーザーフレンドリ)できるという意味合いだと思います。 name()はfinal宣言されているのでオーバーライドすることはできません

LunaRossa
質問者

お礼

ご回答ありがとうございます。 カスタマイズされている可能性があるのでtoString()を呼んだ方がいいということですね。 納得です。