检查一个类是否是java.lang.Enum [英] Checking if a class is java.lang.Enum

查看:145
本文介绍了检查一个类是否是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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆