java 里 instanceof 的用法

2020-01-02  本文已影响0人  52赫兹_Alice

功能:用来测试一个对象是否为一个类的实例
用法: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
    }
}
上一篇 下一篇

猜你喜欢

热点阅读