isassignablefrom java_java isAssignableFrom 和 instanceof 区别

isAssignableFrom 用法为:Class1.class.isAssignableFrom(Class2.class)

表示为:Class1和Class2之间的关系;

如果 Class1与Class2 相同 或者Class1是Class2的 超类或者接口 则返回的true 否则为false;

[Class1.class 表示的是Class1的Class对象 虚拟机一开始的时候不加载这个类[Class1] 当第一次使用这个类[Class1]时候,才会加载这个类的方法 静态变量等信息,生成Class1的Class对象,Class1.class会生成Class1的Class的引用,不会自动地初始化该Class1对象产生实例对象,]

例如:

public interface Move {

}

public abstract class People implements Move{

}

public class Teacher extends People{

}

public class MiddleSchoolTeacher extends Teacher{

}

System.out.println(MiddleSchoolTeacher.class.isAssignableFrom(Move.class)); //false

System.out.println(Move.class.isAssignableFrom(MiddleSchoolTeacher.class)); //true

System.out.println(People.class.isAssignableFrom(MiddleSchoolTeacher.class)); //true

System.out.println(Teacher.class.isAssignableFrom(MiddleSchoolTeacher.class)); //true

System.out.println(MiddleSchoolTeacher.class.isAssignableFrom(MiddleSchoolTeacher.class));//true

System.out.println(Move.class.isAssignableFrom(People.class));//true

System.out.println(Move.class.isAssignableFrom(Teacher.class)); //true

System.out.println(Move.class.isAssignableFrom(Move.class)); //true

System.out.println(People.class.isAssignableFrom(Teacher.class));//true

instance of 运算符 表示的是 左边的 引用实例对象是否是右边 类 接口 抽象类的实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值