0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Enum の toString() と name() の違い【Java】

Posted at

toString()

オーバーライド可能なので、より見やすい形に成形された文字列が返ってくる可能性がある。

name()

final で宣言されているためオーバーライド不可であり、Enum で宣言されたそのままの文字列を取得することが出来る。

状況に依りけり

公式 (Java 8 Enum JavaDoc) によれば、 name() が(宣言部分を書き換えない限り)常に同じ文字列を返すことを利用したプログラムのような特殊な場合でのみ利用を推奨し、それ以外の場合は toString() の利用を推奨、ということらしい。

大抵の場合、Enum には何かしらの値が設定されているだろうからそれを取得しようとする場合は toString をオーバーライドして実装するのが一番手っ取り早く、そのように用途に合わせた小回りを利かせられることから「ユーザーフレンドリ」と言われているのだろう。

ほとんどのプログラマは、このメソッドよりもtoString()メソッドを使用するようにしてください。これは、toStringメソッドの方がユーザーフレンドリな名前を返すことができるからです。
https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Enum.html#name--

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?