如何检查java.lang.reflect.Type是否为枚举



我想检查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()) {...}

相关内容

  • 没有找到相关文章

最新更新