一尘不染

检查一个类是否是java.lang.Enum

java

我想知道一个类是否为枚举,但是我想我缺少了一些东西:

if (test.MyEnum.class instanceof Enum<?>.class)
 obj = resultWrapper.getEnum(i, test.MyEnum.class);
else 
 obj = resultWrapper.getObject(i);

它给我一个错误,指出Enum.class无效。那么,如何检查类是否为枚举?我很确定有可能确定这一点,但我无法做到。

谢谢


阅读 571

收藏
2020-12-03

共1个答案

一尘不染

正确的语法为:

Enum.class.isAssignableFrom(test.MyEnum.class)

但对于枚举,这是一种更方便的方法:

if (someObject.getClass().isEnum()))

更新:对于带有主体的枚举项(例如,覆盖方法),这实际上将不起作用。在这种情况下,请使用

if (someObject instanceof Enum<?>)

参考:

2020-12-03