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

Edd*_*Edd 24 java reflection enums types class

我想检查一个java.lang.reflect.Type实例是否代表一个Emum对象.

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

type == String.class // works
Run Code Online (Sandbox Code Playgroud)

但这似乎对Enum类没有用:

type == Enum.class // doesn't work
Run Code Online (Sandbox Code Playgroud)

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

有人可以向我解释如何判断Type是否是枚举请

jta*_*orn 36

if(type instanceof Class && ((Class<?>)type).isEnum())
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,我知道这将是显而易见的事情 (2认同)

Sun*_*nil 8

Class.isEnum()会为你做.

请参阅Oracle Doc