本文介绍了检查一个类是否是java.lang.Enum的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果一个类是枚举,我想知道一个类是否是一个枚举, (test.MyEnum.class instanceof枚举<?> .class)
obj = resultWrapper.getEnum(i,test.MyEnum.class);
else
obj = resultWrapper.getObject(i);
它给我一个错误,说Enum.class无效。那么我可以检查一个类是否是枚举?我很确定可以确定,我只是无法得到它。
谢谢
解决方案
正确的语法是:
Enum.class.isAssignableFrom(test。 MyEnum.class)
但是对于枚举,这里是一个更方便的方法:
if(someObject.getClass().EnEnum()))
更新:对于具有正文的枚举项(例如覆盖方法),这实际上不会起作用。
在这种情况下,使用
if(someObject instanceof枚举<?>)
参考:
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
解决方案
The correct syntax would be:
Enum.class.isAssignableFrom(test.MyEnum.class)
but for enums, here is a more convenient method:
if (someObject.getClass().isEnum()))
Update: for enum items with a body (e. g. that override methods), this won't actually work.In that case, use
if (someObject instanceof Enum<?>)
Reference:
这篇关于检查一个类是否是java.lang.Enum的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!