如何检查java.lang.reflect.Type是否为Enum
我想检查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()) {...}