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。 否则结果是错误的 |
浙公网安备 33010602011771号