您的位置:首页 > 编程语言 > Java开发

isAssignableFrom与instanceof的区别

2015-12-03 14:26 323 查看
举个通俗的例子: 
isAssignableFrom是比较两个模具是否相同;isAssignableFrom针对class对象 
instanceof 是判断物品X是否是由模具A生产出来的;instanceof 针对实例 

isAssignableFrom是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的超类或接口。通常调用格式是Class1.isAssignableFrom(Class2) 调用者和参数都是java.lang.Class类型。  
     
而instanceof是用来判断一个对象实例是否是一个类或接口的或其子类子接口的实例。格式是:object instanceof TypeName;interImpl instanceof inter第一个参数是对象实例名,第二个参数是具体的类名或接口名,例如String,InputStream。  

程序举例: 

Java代码  


import java.util.ArrayList;  

import java.util.LinkedList;  

import java.util.List;  

  

public class Test {  

    public static void main(String[] args) {  

        List<Object> list = new ArrayList<Object>();  

        List<Object> list2 = new LinkedList<Object>();  

        List<Object> list3 = new ArrayList<Object>();  

          

        System.out.println(list.getClass().isAssignableFrom(list2.getClass()));  

        System.out.println(list.getClass().isAssignableFrom(list3.getClass()));  

          

        System.out.println(list instanceof List);  

        System.out.println(list instanceof ArrayList);  

        System.out.println(list instanceof LinkedList);  

    }  

  

}  

运行结果为: 
false 
true 
true 
true 
false
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java