Ответ 1
if(type instanceof Class && ((Class<?>)type).isEnum())
Я хочу проверить, является ли экземпляр java.lang.reflect.Type
объектом Emum или нет.
Я могу проверить, является ли это экземпляром определенного класса, используя == сравнения, например:
type == String.class // works
но это не похоже на класс Enum:
type == Enum.class // doesn't work
... это имеет смысл, поскольку экземпляр будет иметь конкретное перечисление, но я хотел бы проверить, является ли тип для любого перечисления или нет.
Может ли кто-нибудь объяснить мне очевидное, как определить, является ли тип перечислением или нет, пожалуйста,
if(type instanceof Class && ((Class<?>)type).isEnum())
Class.isEnum() сделает это за вас.
Обратитесь к Oracle Doc
Почему бы вам не использовать метод .equals для сравнения этого типа сравнений. == в основном используется для примитивных типов.
type.equals(Enum.class)
или, возможно, вам понадобится сравнить свои собственные классы.
type.equals(MyClass.class)
if(type instanceof Class && (Class)type.getClass().isEnum()) {...}