java 里 instanceof 的用法

功能:用来测试一个对象是否为一个类的实例
用法:boolean result = Object instanceof Class
说明:Object是一个实例对象,Class 表示一个类或接口,当 Object 为 Class 的对象,或者是其直接或间接子类,或者是其接口的实现类,结果 result 都返回 true,否则返回 false。

实例:

Integer i = new Integer(3);
System.out.println(i instanceof  Integer);  // 这里输出 true

isAssignableFrom() 方法是从类继承的角度去判断,instanceof关键字是从实例继承的角度去判断。
isAssignableFrom() 方法是判断是否为某个类的父类,instanceof关键字是判断是否某个类的子类。
实例:

父类.class.isAssignableFrom(子类.class)
子类实例 instanceof 父类类型

如果该父类表示一个基本类型,且指定的子类参数正是该 Class 对象,则该方法返回 true;否则返回 false。

public class A {
    public static void main(String[] args) {
        A a = new A();
        B b = new B();
        A ba = new B();
        System.out.println(A.class.isAssignableFrom(a.getClass()));  //true
        System.out.println(B.class.isAssignableFrom(b.getClass())); //true
        System.out.println(A.class.isAssignableFrom(b.getClass())); //true
        System.out.println(B.class.isAssignableFrom(a.getClass())); //false
        System.out.println(A.class.isAssignableFrom(ba.getClass())); //true
        System.out.println(B.class.isAssignableFrom(ba.getClass())); //true
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。