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