if(変数名 instanceof クラス名){
処理; }
以下は、instanceof を使って同パッケージ内にコンストラクタに String 型の引数を持っている「StaticTest」と「MainTest」クラスを配列に格納し(同クラスにそれぞれ格納していく)、その配列オブジェクトのクラスを判断する簡単なプログラムの例です。
public class InstanceofTest { public static void main(String[] args) { Object obj[] = new Object[2]; obj[0] = new StaticTest("StaticTest型"); obj[1] = new MainTest("MainTest型"); for (int i = 0; i < obj.length; i++) { //objがnullでないかの判断 if(obj[i] == null){ return; } //instanceofを使ってクラスの判断 if (obj[i] instanceof MainTest) { System.out.println(i + "番目は「MainTest」クラスです。"); } else { System.out.println(i + "番目は「MainTest」クラスではありません。"); } } } }
そして、以下が実行結果です。
0番目は「MainTest」クラスではありません。 1番目は「MainTest」クラスです。
以上の実行結果をみてわかるように instanceof を使うことによってオブジェクトのクラスを調べることが出来ます。
Java では全てのクラスは Object クラスを継承しています。Object クラスを入れる変数に、色々なクラスのオブジェクトを格納することが出来ます。そこで、オブジェクトがどんなクラスであるのかを判断するのに必要となってくるのが、instanceof です。