instanceof,isinstance,isAssignableFrom説明

860 ワード

instanceof:左オブジェクトが右クラスまたはインタフェースのインスタンス化であるかどうかを検出します.左側がnullの場合はfalseに直接戻ります.
obj instanceofクラス
例:
String s = new String("aaa");
if(s instanceof String){
    System.out.println("true");
}
  true

isInstance:Classクラスのメソッドは、objがクラスまたはインタフェースのインスタンス化であるかどうかを判断します.instanceofと似ています.
クラスclass.isInstance(obj)
String s = new String("aaa");
if(String.class.isInstance(s)){
    System.out.println("true");
}
  true

isAssignableFrom:このメソッドを呼び出すclassまたはインタフェースがパラメータclsで表されるクラスまたはインタフェースと同じ、またはパラメータclsで表されるクラスまたはインタフェースの親クラスである場合、trueを返します. 
クラスclass.isAssignableFrom(クラス2.class)
System.out.println(ArrayList.class.isAssignableFrom(Object.class));
  false
System.out.println(Object.class.isAssignableFrom(ArrayList.class));
  true