質問

多くの言語には、オブジェクトが特定のタイプ(親サブクラスを含む)であるかどうかを確認する機能があり、「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
TargetType obj を含む型階層にある場合、

obj instanceof TargetType はtrueを返します。

Sunのチュートリアル

を参照してください。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top