Java中isAssignableFrom,instanceof

isAssignableFrom
示例:Class1.isAssignableFrom(Class2)
解釋:① 判斷Class1和Class2是否相同。java

System.out.println(Object.class.isAssignableFrom(Object.class)); // true

          ②Class1是不是Class2的父類或者接口。code

System.out.println(Object.class.isAssignableFrom(String.class)); // true
System.out.println("Object類是String 類的父類:"+
                        Object.class.isAssignableFrom(String.class));//true
System.out.println("AbstractList類是ArrayList 類的父類:"+
              AbstractList.class.isAssignableFrom(new ArrayList<>().getClass()));//true
System.out.println("List接口是ArrayList 類的父類:"+
             List.class.isAssignableFrom(new ArrayList<>().getClass()));//true
System.out.println("List接口是AbstractList 接口(抽象類)的父接口:"+
            List.class.isAssignableFrom(AbstractList.class));//true

根據ArrayList,AbstractList,List的關係判斷,isAssignableFrom 也能夠判斷class1是不是class2的父接口(抽象類)對象

instanceof
示例:object   instanceof   TypeName
解釋:判斷一個對象實例是不是一個類或接口的或其子類子接口的實例。接口

public void testInstanceOf1() {  
           String ss = "";  
	   
	   System.out.println(ss instanceof Object); // true 
	   
       System.out.println(ss instanceof java.lang.String); // true  
       
       
       ArrayList<String>array=new ArrayList<>(); 
       
       System.out.println(array  instanceof java.util.List); // true 
    }

 

 

以上做爲平常筆記記錄.overget

相關文章
相關標籤/搜索