簡體   English   中英

檢查類是否為java.lang.Enum

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM