これはおそらくばかげた質問ですが、私はメソッドenum.valueOf(String name)
を使用しています。このメソッドの詳細を調べるためにjavadocをチェックしていたときに、それが見つからなかったことを除いて、問題はありません。 valueOf(Class<T> enumType, String name)
にはjavadocがありますが、enum.valueOf(String name)
にはありません(これは、このシグネチャを持つメソッドが存在しないことを示唆しますが、明らかに存在します)。
ここで何かが足りないのですか、それともAPIのjavadocの見落としですか?
ありがとう
メソッドEnum.valueOf(String)はありませんが、すべてのenum
にはコンパイラーによって生成されたvalues()
およびvalueOf(String)
メソッドがあり、これらは文書化されています。これらは静的メソッドであるため、スーパークラスまたはインターフェイスでオーバーライドまたは定義することはできません。
Enum e = Enum.valueOf(""); // this doesn't compile
http://docs.Oracle.com/javase/1.5.0/docs/api/Java/lang/Thread.State.html#values%28%29
http://docs.Oracle.com/javase/6/docs/api/Java/lang/Thread.State.html#values%28%29
Java 5.0、6、または7でも同じです。
For Java 5.0 http://docs.Oracle.com/javase/specs/jls/se5.0/html/classes.html#8.9 (値を検索)For Java 7 http://docs.Oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.9.2 = @ kapepによって提供されます
内部的には、enum.valueOf(String name)
は実際に呼び出しています Enum.valueOf(Class<T> enumType, String name)