Javaで 'is'を実行する最も簡単な方法は何ですか?
-
04-07-2019 - |
質問
多くの言語には、オブジェクトが特定のタイプ(親サブクラスを含む)であるかどうかを確認する機能があり、「is」で実装され、次のように使用されます。
if(obj is MyType)
またはもう少し面倒なことに、他の言語では 'as'キーワードを使用してソフトタイプキャストを実行し、結果がnullであるかどうかを確認できます。
私は何年もJavaを使ったことがないので、速度を取り戻していますが、JavaにはReflection APIを深く掘り下げることなく簡単にこれを行う方法がありますか?
ご回答ありがとうございます。私はここと他の場所の両方を検索しましたが、関連するキーワードは非常に一般的であるため、これには簡単な答えがあると確信していますが、グーグルは難しいです。
解決
if (objectReference instanceof type){
//Your code goes here
}
詳細こちら。
他のヒント
instanceof
はクラスリテラルでのみ使用できます。つまり:
Class type = String.class;
if (myObj instanceof String) // will compile
if (myObj instanceof type) //will not compile
代替方法は、メソッド Class.isInstance
if (type.isInstance(myObj)) // will compile
所属していません StackOverflow