Java class类 isAssignableFrom()方法及示例

Class类isAssignableFrom()方法

  • isAssignableFrom()方法在java.lang包中可用。

  • isAssignableFrom()方法用于检查此Class对象所表示的类或接口是否与该类或接口相同,或者该Class对象是否为超类或超接口。

  • isAssignableFrom()方法是一个非静态方法,只能使用类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。

  • isAssignableFrom()方法在分配对象时可能会引发异常。
    NullPointerException:在异常中,当给定的类存在时为null。

语法:

    public boolean isAssignableFrom(Class class);

参数:

  • Class class –表示要确定的Class对象。

返回值:

此方法的返回类型为boolean,它根据以下情况返回布尔值:

  • 当类的对象可分配给该类的对象时,它返回true

  • 当class的对象不可分配给该Class的对象时,它返回false

示例

// Java program to demonstrate the example 
//的布尔isAssignableFrom(Class class)方法的说明 

public class Parent {
    public static void main(String[] args) throws Exception {
        //创建并返回父类对象
        Parent p = new Parent();
        Class cl1 = p.getClass();

        //创建并返回子类对象
        Child ch = new Child();
        Class cl2 = ch.getClass();

        //我们正在检查给定的Parent类是 
        //可从子类分配
        boolean child = cl2.isAssignableFrom(cl1);
        System.out.println("Is" + " " + cl1.getSimpleName() + " " + "Assignable from Child: " + " " + child);

        //我们正在检查给定的Child类是 
        //可从父类分配
        boolean parent = cl1.isAssignableFrom(cl2);
        System.out.println("Is" + " " + cl2.getSimpleName() + " " + "Assignable from Parent: " + " " + parent);
    }
}

class Child extends Parent {
    public Child() {
        //具有空白实现的默认构造函数
    }
}

输出结果

Is Parent Assignable from Child:  false
Is Child Assignable from Parent:  true