当前位置: 首页 > 面试题库 >

检查一个类是否是java.lang.Enum

莫英卓
2023-03-14
问题内容

我想知道一个类是否为枚举,但是我想我缺少了一些东西:

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()


 类似资料:
  • 我的两个列表中有以下元素,清单1[A F K]和清单2[B A C F K]。清单1的所有元素都在清单2中,因此它应该返回true 我尝试使用list1.containsAll(list2),但它并不支持我。 我尝试在这两个列表中循环,如果找到匹配,我就清空第一个列表中的那个位置,但这不起作用,因为我认为它会受到并发修改的影响。这是我的代码 在这里,subTreeList最终输出[A]。我知道它会

  • rank ▲ ✰ vote url 41 487 108 705 url 检查一个字符串是否是一个数字 如果一个字符串可以被看做一个数字那么有什么好的方法可以检测出来? 我能想到的方法: def is_number(s): try: float(s) return True except ValueError: return Fals

  • 问题内容: 假设我有一个西服套装和四个西服套装子类别:Heart,Spade,Diamond和Club。 我有一个方法,该方法接收西装作为参数,这是一个类对象,而不是实例。更准确地说,它可能仅接收以下四个值之一:Heart,Spade,Diamond,Club。我该如何做出保证这种事情的断言?就像是: 我正在使用Python 3。 问题答案: 您可以使用像这样。

  • 问题内容: 我正在玩Java的反射API,并尝试处理一些字段。现在,我要确定字段的类型。字符串很简单,只需执行即可。其他非派生类也是如此。但是,如何检查派生类?例如作为的子类。我无法找到任何或方法。我是否需要遍历所有人并自己找到超人? 问题答案: 您需要此方法: 一般情况下,(以上)应替换为并应替换为 从JavaDoc: 确定此对象表示的类或接口是否与指定参数表示的类或接口相同或超类或超接口。如果

  • 我读过https://projectlombok.org/features/equalsandHashCode几次,从中得出了不同的结论。 下面是我正在做的一个例子来帮助澄清我的问题: GeneratorTypeB看起来与上面的代码段完全相同。现在说我有以下几点: 我用来组合集合的代码在这个设置中工作得很好,但是我要处理的数据很多,所以遇到equals方法中使用的重复的唯一标识符的几率很低,但是它

  • 对于此示例: 如何检查 是否是 Foo 的实例(但不是其 foo 子类的实例)?那是: checkInstance(qux,Foo.class)=true checkInstance(qux,Bar.class)=false 有没有类似于< code>instanceof的语句来进行这种检查?或者我应该使用< code>qux.getClass()。equals(Foo.class)