我想知道一个类是否是一个枚举,但我想我错过了一些东西:
if (test.MyEnum.class instanceof Enum<?>.class)
obj = resultWrapper.getEnum(i, test.MyEnum.class);
else
obj = resultWrapper.getObject(i);
它给了我一个错误,说 Enum.class 无效。那么我如何检查一个类是否是一个枚举?我很确定可以确定,我只是无法得到它。
谢谢
我想知道一个类是否是一个枚举,但我想我错过了一些东西:
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<?>)
参考:
如果你在谈论 Java 5 的新特性—— enum
(实际上它不是很新),那么这就是要走的路:
if (obj.getClass().isEnum()) {
...
}
如果Enum
是您的自定义类,那么只需检查obj instanceof Enum
.