我想检查java.lang.reflect.Type
实例是否代表Emum对象。
我可以使用==比较来检查它是否是特定类的实例,例如:
type == String.class // works
但这似乎不适用于Enum类:
type == Enum.class // doesn't work
...这是有道理的,因为实例将是一个特定的枚举,但我想检查该类型是否适用于任何枚举。
有人可以向我解释如何判断Type是否为枚举
答案 0 :(得分:33)
if(type instanceof Class && ((Class<?>)type).isEnum())
答案 1 :(得分:8)
Class.isEnum()会为你做。
请参阅Oracle Doc
答案 2 :(得分:1)
为什么不使用.equals方法来比较这种类型的比较。 ==主要用于原始类型。
type.equals(Enum.class)
或者您可能需要比较自己的课程。
type.equals(MyClass.class)
答案 3 :(得分:0)
if(type instanceof Class && (Class)type.getClass().isEnum()) {...}