instanceof 和isinstance的区别

Posted jiangwenwen1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了instanceof 和isinstance的区别相关的知识,希望对你有一定的参考价值。

class A {}
class B extends A {}
class C extends A {}

public class Test {

    public static void main(String[] args) {
        A a = new A();
        B b = new B();
        C c = new C();
        
        //静态比较,类型必须在编译的时候知道
        //判断对象是不是类或者其子类的实例
        System.out.println(a instanceof A);//true
        System.out.println(a instanceof B);//false
        System.out.println(c instanceof A);//true
        System.out.println(null instanceof A);//false
        
        //动态比较,类型可以不知道,在运行时传入
        //判断对象是不是类或者其子类的实例
        System.out.println(a.getClass().isInstance(b));//true
        System.out.println(b.getClass().isInstance(a));//false
        System.out.println(a.getClass().isInstance(null));//false
        

    }

}

以上是关于instanceof 和isinstance的区别的主要内容,如果未能解决你的问题,请参考以下文章

Java中instanceof和isInstance区别详解

instanceof和isInstance的区别

instanceof 和isinstance的区别

instanceOf与isInstance()方法之间的区别

instanceof, isinstance,isAssignableFrom的区别

isAssignableFrom ,isInstance , Instanceof() 区别