Class的isAssignableFrom详解

1:方法介绍

isAssignableFrom方法是java.lang.Class类中的一个native方法,如下:

java.lang.Class#isAssignableFrom
public native boolean isAssignableFrom(Class<?> cls);

当前Class对象如果是参数Class对象的父类,父接口,或者是相同,都会返回true

2:具体使用

父类:

public class FatherCls {
}

2.1:和自己比较

  • 测试
// 同类型的情况
FatherCls fatherClsInstance = new FatherCls();
System.out.println("同类型测试:");
System.out.println(FatherCls.class.isAssignableFrom(fatherClsInstance.getClass()));
  • 输出
同类型测试:
true

2.2:和自己儿子比较

  • 定义子类
public class FatherSonCls extends FatherCls {
}
  • 测试代码
FatherSonCls fatherSonClsInstance = new FatherSonCls();
System.out.println("测试自己的子类");
System.out.println(FatherCls.class.isAssignableFrom(fatherSonClsInstance.getClass()));
  • 测试输出
测试自己的子类
true

2.3:和自己儿子的儿子比较

  • 定义儿子的儿子
public class FatherSonSonCls extends FatherCls {
}
  • 测试代码
System.out.println("测试自己子类的子类");
FatherSonSonCls fatherSonSonClsInstance = new FatherSonSonCls();
System.out.println(FatherCls.class.isAssignableFrom(fatherSonSonClsInstance.getClass()));
  • 测试输出
测试自己子类的子类
true

2.4:和自己父类比较

  • 测试代码
System.out.println("测试自己父类");
FatherCls fatherCls1Instance = new FatherCls();
System.out.println(FatherSonCls.class.isAssignableFrom(fatherCls1Instance.getClass()));
  • 测试输出
测试自己父类
false

2.5:和自己没有关系的比较

  • 测试代码
System.out.println("测试没有任何关系的类");
OtherCls otherClsInstance = new OtherCls();
System.out.println(FatherCls.class.isAssignableFrom(otherClsInstance.getClass()));
  • 测试输出
测试没有任何关系的类
false

最后:都让开,我要喝瑞幸

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值