[英]Checking if a class is java.lang.Enum
我想知道一個班級是否是一個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<?>)
參考:
如果您正在談論Java 5新功能 - enum
(實際上並不是很新),那么這就是要走的路:
if (obj.getClass().isEnum()) {
...
}
如果Enum
是您的自定義類,那么只需檢查obj instanceof Enum
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.