Java Enum getDeclaringClass

В классе java.lang.Enum в Java есть замечательный метод getDeclaringClass. Я уже описывал перечисления в Java в соответствующей статье в учебнике. Но там я не упоминал этого метода. Дело в том, что getClass в случае с элементами перечисления, которые имеют своё тело, вернёт имя сгенерированного анонимного класса, а не того класса, который мы хотим. Метод getDeclaringClass же всегда возвращает имя класса исходного перечисления.

Пример:

Выведет на консоль:

Как видно, getClass у d возвращает не наше перечисление A, а сгенерированный компилятором класс, что не совсем то, что обычно хотят получить. А метод getDeclaringClass возвращает как раз наше перечисление.

Как сказано в документации, два перечисления будут одного типа только тогда, когда getDeclaringClass для них возвращает одно и то же значение.


Поделиться:
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...