我有一個對象。我想檢查它是否是枚舉類型。有兩種方法可以做到這一點。使用class.isEnum()或instanceof Enum更好嗎?
object.getClass().isEnum()
或
object instanceof Enum
是一個更好?
我有一個對象。我想檢查它是否是枚舉類型。有兩種方法可以做到這一點。使用class.isEnum()或instanceof Enum更好嗎?
object.getClass().isEnum()
或
object instanceof Enum
是一個更好?
在我看來object instanceof Enum
有幾個原因是更好:
NullPointerException
(如果object
是null
,它只會評估爲false
)我會看到使用isEnum()
是,如果我只能訪問到Class
對象,而不是一個具體的實例的唯一原因。
+1關於NPE。我現在正在做這個循環,不知道它是否會影響 –
就性能而言,'instanceof'的工作速度也很快(它根據所測試的類而變化,但對於我所有的測試來說,至少比isEnum快33%,最快快450%)。 isEnum:2691826 instanceof:658774 – ty1824
@ ty1824 - 真棒。數據是我正在尋找的確切的東西 –
「更好」是指「更容易閱讀」,「跑得更快」等。 – templatetypedef
@templatetypedef大部分表現更容易閱讀。 –
如果你需要確定一個對象是否是Enum,那麼你應該問的問題是「爲什麼我使用這個可怕的設計」。 – DwB