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:欢迎大家留言 🌹🌹