enum.valueOf (имя строки) отсутствует в Javadoc 1.5 и 1.6 - PullRequest
22 голосов
/ 21 марта 2012

Возможно, это глупый вопрос, но я использую метод enum.valueOf(String name).Там нет никаких проблем, за исключением того, что, когда я проверял Javadoc, чтобы узнать больше об этом методе, я не мог найти его.Существует javadoc для valueOf(Class<T> enumType, String name), но нет для enum.valueOf(String name) (что предполагает, что метод с этой сигнатурой не существует - но, несомненно, существует).

Я что-то здесь упускаю илинадзор в javadoc для API?

Спасибо

Ответы [ 2 ]

19 голосов
/ 21 марта 2012

Нет метода 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

То же самое в Java5.0, 6 или 7.

для Java 5.0 http://docs.oracle.com/javase/specs/jls/se5.0/html/classes.html#8.9 (поиск значений) для Java 7 http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.9.2 предоставлено @ kapep

9 голосов
/ 22 марта 2012

Под капотом enum.valueOf(String name) фактически звонит Enum.valueOf(Class<T> enumType, String name)

...