Java中instanceof和isInstance的区别
转载: https://coget.cn/archives/Java%E4%B8%ADinstanceof%E5%92%8CisInstance%E7%9A%84%E5%8C%BA%E5%88%AB
instanceof 是一个操作符
// 基础关系
public static class A {
}
public static class B extends A {
}
// 使用方法
System.err.println(a instanceof A);
说明
- 一个对象,是否是
本身
、父类
或父类接口
。 -
Object
都为true
,null
对象都为false
结果
image.png
isInstance 是Class对象的方法
// 基础关系
public static class A {
}
public static class B extends A {
}
// 使用方法 (1)
System.err.println(B.class.isInstance(a));
说明
如(1):这样理解会好点,
a变量
是否可以转换B类型
。
-
一个类型
是否能转换另一个类型
,包含类本身
、父类
、父类接口
-
Object
都为true
,null
对象都为false
a
不能转换为B
,b1
也不能转换为b2
结果
image.png
ps:欢迎大家留言 🌹🌹