私はオブジェクトを持っています。私はそれが型enumであるかどうかを確認したい。これを行うには2つの方法があります。class.isEnum()またはinstanceof Enumを使用する方が良いですか?
object.getClass().isEnum()
または
object instanceof Enum
より良い1ですか?私の意見object instanceof Enum
で
私はオブジェクトを持っています。私はそれが型enumであるかどうかを確認したい。これを行うには2つの方法があります。class.isEnum()またはinstanceof Enumを使用する方が良いですか?
object.getClass().isEnum()
または
object instanceof Enum
より良い1ですか?私の意見object instanceof Enum
で
はいくつかの理由のためのより良いです:
NullPointerException
それは短いですobject
がnull
であれば、それだけでfalse
と評価されます)リスクはありません。私はClass
オブジェクトにではなく、具体的なインスタンスへのアクセスを持っている場合、私はisEnum()
を使用するために参照してくださいね唯一の理由は次のようになります。
+1を参照してください。私はループでこれをやっているのですが、それが問題なのかどうかは分かりませんでした。 –
パフォーマンス面では、 'instanceof'も高速に動作します(テスト対象のクラスによって異なりますが、 'isEnum'より33%速い、最も速いのは約450%速い)。 isEnum:2691826 instanceof:658774 – ty1824
@ ty1824 - 素晴らしい。統計は私が探していた正確なものです –
「より良い」とは、「読みやすく」「速く走る」などを意味しますか? – templatetypedef
@templatetypedefほとんどの場合、パフォーマンスは読みやすくなります。 –
オブジェクトが列挙型かどうかを判断する必要がある場合は、質問する必要がある質問は「なぜこのひどいデザインを使用していますか」です。 – DwB