instanceof是Java的一个二元操作符,和==,>,<是同一类东东。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。
用法:
A instanceof B
前一个操作数通常是一个引用类型的变量。
后一个操作数通常是一个类(也可以是接口,可以把接口理解为特殊的类)。
它用于判断前面的对象是否是后面的类,或其子类、实现类的实例。
注:instanceof运算符前面的操作数的编译时类型:要么与后面的类相同,要么与后面的类具有父子继承关系(谁继承谁都可以)。
|
|
通常我们使用的时候,都是用instanceof来判断某一个对象所指向的的对象是否是某个类的 一个实例。当为真时,返回结果为true,当为假时,返回结果为false。这样在使用时就可以根据判断结果的不同转向不同的操作。
但是,这样做其实是没有利用好面向对象的多态性。很多时候这种类似的判断可以根据接收到的参数类型的不同来解决,因此instanceof在大多数情况下并不推荐使用,还是应尽可能的利用好多态。