Подтвердить что ты не робот

Enum.valueOf(имя строки) отсутствует в Javadoc 1.5 и 1.6

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

Мне что-то не хватает, или это надзор в javadoc для API?

Спасибо

4b9b3361

Ответ 1

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

Для 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