欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Class.isAssignableFrom与instanceof的区别

程序员文章站 2022-11-13 20:46:12
isAssignableFrom 假设有两个类Class1和Class2。 表示: 1. 类Class1和Class2是否相同。 2. Class1是否是Class2的父类或接口 调用者和参数都是java.lang.Class类型。 instanceof 用来判断一个对象是否是一个类及其子类或接口及 ......

isassignablefrom

假设有两个类class1和class2。class1.isassignablefrom(class2)表示:

  1. 类class1和class2是否相同。
  2. class1是否是class2的父类或接口
    调用者和参数都是java.lang.class类型。

instanceof

用来判断一个对象是否是一个类及其子类或接口及其子接口的的实例。
格式:object instanceof typename
第一个参数是对象实例名,第二个参数是具体的类名或接口名

举例

public class testcase {  
    public static void main(string[] args) {  
        testcase test = new testcase();  
        test.testisassignedfrom1();  
        test.testisassignedfrom2();  
        test.testisassignedfrom3();  
        test.testinstanceof1();  
        test.testinstanceof2();  
    }  
  
    public void testisassignedfrom1() {  
        system.out.println(string.class.isassignablefrom(object.class));  
    }  
  
    public void testisassignedfrom2() {  
        system.out.println(object.class.isassignablefrom(object.class));  
    }  
  
    public void testisassignedfrom3() {  
        system.out.println(object.class.isassignablefrom(string.class));  
    }  
  
    public void testinstanceof1() {  
        string ss = "";  
        system.out.println(ss instanceof object);  
    }  
  
    public void testinstanceof2() {  
        object o = new object();  
        system.out.println(o instanceof object);  
    }  
  
}  

打印结果:

false  
true  
true  
true  
true  

参考连接: