オブジェクトの型を判定するには、instanceof演算子を使用します。
サンプルソース
例)オブジェクトの型を判定する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
import java.util.*; public class Test{ public static void main(String args[]){ //ArrayListを生成し、Object型変数に代入 Object a = new ArrayList<String>(); //クラス名を表示する System.out.println(a.getClass()); //オブジェクトがArrayList型かどうか判定する if(a instanceof ArrayList){ System.out.println("ArrayList!"); } //オブジェクトがList型かどうか判定する if(a instanceof List){ System.out.println("List!"); } //オブジェクトがString型かどうか判定する if(a instanceof String){ System.out.println("string!"); } } } |
- (結果)
- class java.util.ArrayList ArrayList! List!
メモ
- instanceof演算子は、指定した型と同じクラスであればtrueを返します。
- 継承関係のある親クラスであってもtrueを返します。
※上記例でいうと、ArrayList型 とList型はtrueです。 - 継承関係(extends)だけでなく、実装関係(implements)でも関係があればtrueを返します。