[コマンドプロンプト/バッチファ...>2010-08-16Javaのinstanceof演算子JavaJavaのinstanceof演算子に関するメモです。instanceofの基本instanceof演算子の演算結果は、左辺のオブジェクトが以下の条件のどれかを満たす場合にtrueとなります。右辺に指定したクラスのオブジェクトである。右辺に指定したクラスのサブクラスのオブジェクトである。右辺に指定したインターフェースの実装クラスである。右辺に指定したインターフェースの実装クラスのサブクラスである。instanceof演算子の演算結果がtrueになった場合、左辺のオブジェクトを右辺のクラスにキャストし、メンバにアクセスすることが可能です。NumberクラスはObjectクラスのサブクラスである。IntegerクラスはNumberクラスのサブクラスである。NumberクラスはSerializableインターフェースを実装する。100instanceofとプリミティブ型instanceof演算子では、プリミティブ型を扱うことはできません。次のようなコードはコンパイルエラーとなります。}instanceofとnullinstanceof演算子の演算結果は、左辺がnullの場合はfalseになります。ObjectObject#getClass()を使った比較instanceof演算子の代わりにObject#getClass()を使用すると、オブジェクトの型が、指定したクラスに完全に一致するかどうかを判定できます。100instanceofとジェネリッククラスinstanceofの右辺でのクラス指定でジェネリッククラスを指定する場合は、型としてワイルドカード(?)を指定する必要があります。これは、ジェネリッククラスの型情報が、コンパイル時に無くなっているためです。次の例では、オブジェクトがList<String>であるかをinstanceofで判断できないため、まず、オブジェクトがList<?>かどうかをチェックし、さらにそのメンバがStringであるかをチェックしています。このチェックでは、List<String>の場合と、List<Object>でメンバが全てStringだった場合を区別できません。23:22instanceofはまだ一度も使ったことがないので、今度使ってみようと思います。スパム対策のためのダミーです。[コマンドプロンプト/バッチファ...>プロフィールsimply-kソフトウェアの開発状況と開発中に気づいたことを書いていきます。