Java中isAssignableFrom,instanceof

北城以北 提交于 2021-01-19 05:41:40

isAssignableFrom
示例:Class1.isAssignableFrom(Class2)
解释:① 判断Class1和Class2是否相同。

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

          ②Class1是否是Class2的父类或者接口。

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 
    }  

 

 

以上作为日常笔记记录.over

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!