检查一个类是否是java.lang.Enum
我想知道如果一个类是一个枚举,但我想我错过了一些东西:
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()
如果你正在谈论Java 5的新function – enum
(实际上并不是很新),那么这是一条路:
if (obj.getClass().isEnum()) { ... }
如果Enum
是你的自定义类,那么只需检查obj instanceof Enum
。