5.7.3 instanceof运算符
5.7.3 instanceof
运算符
instanceof
运算符的前一个操作数通常是一个引用类型变量
,后一个操作数通常是一个类(也可以是接口,可以把接口理解成一种特殊的类),它用于**判断前面的对象是否是后面的类
,或者其子类、实现类的实例
**。如果是,则返回true
,否则返回false
.
instanceof
前面的引用变量的编译时类型
要与后面的类相同
或者有继承关系
在使用instanceof
运算符时需要注意:
instanceof
运算符前面操作数的编译时类型
要么与后面的类相同,- 要么与后面的类
具有父子继承关系
, - 否则会引起
编译错误
。
instanceof
的前面的引用变量的运行时类型
决定返回true
或flase
如果instanceof
前面的引用变量的运行时类型和后面的类一样,或者是后面类的子类,则返回true
.
instanceof
运算符的作用
instanceof
运算符的作用是:在进行强制类型转换之前,首先判断前一个对象是否是后一个类的实例,是否可以成功转换,从而保证代码更加健壮.
先用instanceof
判断再强制类型装换
instanceof
和(type)
是Java
提供的两个相关的运算符,通常先用instanceof
判断一个对象是否可以强制类型转换,然后再使用(type)
运算符进行强制类型转换,从而保证程序不会出现错误。
实例
1 | public class InstanceofTest { |
1 | true |