呵呵呵5596

导航

Java关键字(一)——instanceof

1 类型之间的转换:

父类转子类
Person p=new student()
student p=(student)Person p

instanceof

如果用伪代码描述:
1
2
3
4
5
6
7
8
9
10
11
boolean result;
if (obj == null) {
result = false;
} else {
try {
T temp = (T) obj; // checkcast
result = true;
} catch (ClassCastException e) {
result = false;
}
}
也就是说有表达式 obj instanceof T,instanceof 运算符的 obj 操作数的类型必须是引用类型或空类型; 否则,会发生编译时错误。
如果 obj 强制转换为 T 时发生编译错误,则关系表达式的 instanceof 同样会产生编译时错误。 在这种情况下,表达式实例的结果永远为false。
在运行时,如果 T 的值不为null,并且 obj 可以转换为 T 而不引发ClassCastException,则instanceof运算符的结果为true。 否则结果是错误的

posted on 2021-11-16 19:32  呵呵呵5596  阅读(45)  评论(0)    收藏  举报