Проверка, является ли класс java.ленг.Перечисление
Я пытаюсь узнать, является ли класс перечислением, но я думаю, что мне чего-то не хватает:
if (test.MyEnum.class instanceof Enum<?>.class)
obj = resultWrapper.getEnum(i, test.MyEnum.class);
else
obj = resultWrapper.getObject(i);
это дает мне ошибку, говоря, что перечисление.класс не является допустимым. Итак, как я могу проверить, является ли класс перечислением? Я почти уверен, что это можно определить, я просто не могу его получить.
спасибо
2 ответа:
правильный синтаксис такой:
Enum.class.isAssignableFrom(test.MyEnum.class)
но для перечислений, вот более удобный способ:
if (someObject.getClass().isEnum()))
Update: для элементов перечисления с телом (например, которые переопределяют методы) это фактически не будет работать. В этом случае используйте
if (someObject instanceof Enum<?>)
ссылки: