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

2022-09-01 11:34:08

我想检查实例是否表示 Emum 对象。java.lang.reflect.Type

我可以使用==比较来检查它是否是特定类的实例,例如:

type == String.class // works

但这似乎不适用于Enum类:

type == Enum.class // doesn't work

...这是有道理的,因为实例将是一个特定的枚举,但我想检查该类型是否适用于任何枚举。

有人可以向我解释如何判断类型是否是枚举的显而易见吗?


答案 1
if(type instanceof Class && ((Class<?>)type).isEnum())

答案 2

Class.isEnum() 将为您完成此操作。

请参阅甲骨文文档