检查类是否为 java.lang.Enum
我想知道一个类是否是一个枚举,但我认为我遗漏了一些东西:
if (test.MyEnum.class instanceof Enum<?>.class)
obj = resultWrapper.getEnum(i, test.MyEnum.class);
else
obj = resultWrapper.getObject(i);
它给了我一个错误,说 Enum.class 无效。那么我如何检查一个类是否是枚举呢?我很确定可以确定这一点,但我只是无法得到它。
谢谢
I'm trying to know if a class is an Enum, but I think I'm missing something:
if (test.MyEnum.class instanceof Enum<?>.class)
obj = resultWrapper.getEnum(i, test.MyEnum.class);
else
obj = resultWrapper.getObject(i);
It gives me an error saying that Enum.class is not valid. So how I can check if a class is a Enum? I'm pretty sure it is possible to determine that, I'm just unable to get it.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
正确的语法是:
但对于枚举,这里有一个更方便的方法:
更新:对于具有主体的枚举项(例如覆盖方法),这实际上不起作用。
在这种情况下,请使用
参考:
Class.isEnum()
The correct syntax would be:
but for enums, here is a more convenient method:
Update: for enum items with a body (e. g. that override methods), this won't actually work.
In that case, use
Reference:
Class.isEnum()
如果您正在谈论 Java 5 新功能 -
enum
(实际上它并不是很新),那么这就是要走的路:如果
Enum
是您的自定义类,那么只需检查 obj instanceof Enum 即可。If you're talking about Java 5 new feature -
enum
(it's not very new actually), then this is the way to go:If
Enum
is your custom class, then just check thatobj instanceof Enum
.