我想检查java.lang.reflect.Type
实例是否表示Emum对象。
我可以使用==比较来检查它是否是特定类的实例,例如:
type == String.class // works
但这似乎不适用于Enum类:
type == Enum.class // doesn't work
这是有道理的,因为实例是特定枚举的,但我想检查该类型是否适用于任何枚举。
有人能向我解释一下如何判断Type是否是枚举吗?请
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()) {...}