我想知道一个类是否为枚举,但是我想我缺少了一些东西:
if (test.MyEnum.class instanceof Enum<?>.class) obj = resultWrapper.getEnum(i, test.MyEnum.class); else obj = resultWrapper.getObject(i);
它给我一个错误,指出Enum.class无效。那么,如何检查类是否为枚举?我很确定有可能确定这一点,但我无法做到。
谢谢
正确的语法为:
Enum.class.isAssignableFrom(test.MyEnum.class)
但对于枚举,这是一种更方便的方法:
if (someObject.getClass().isEnum()))
更新:对于带有主体的枚举项(例如,覆盖方法),这实际上将不起作用。在这种情况下,请使用
if (someObject instanceof Enum<?>)
参考:
Class.isEnum()