instanceof
关键字
java的保留关键字,双目运算符,
用于判断
instanceof
前面的对象是否是instanceof
后面的类的对象、
或者instanceof
前面的对象是否是instanceof
后面的类的子类对象(判断子父类的所属关系)、
或者instanceof
前面的对象是否是instanceof
后面的接口的实现类的实例。
返回值为Boolean类型。
用法:
boolean result = object instanceof Class;
说明:
如果 object
是 Class
的一个实例,则instanceof
返回值为 true 。
如果 object
不是 Class
的一个实例 或 object
的值为 Null ,则instanceof
返回值为 false 。
用法 代码示例
instanceof
运算符只能用作对象的判断,因此object
必须为引用类型。
在编译阶段,编译器会自动检查object
对象是否能转换为右边的class
类型。如果不能转化,会提示报错。
int i = 0 ;
boolean result = i instanceof Interger;
//编译不通过
- 在 JavaSE规范 中对
instanceof
运算符的规定:如果object
为 Null ,那么将返回 false。
boolean result = null instanceof Interger;
//返回值 false
object
是Class
的一个实例。
//1. object是class类的实例对象
Interger i = new Interger(1);
boolean result = i instanceof Interger;
//返回值 true
//2.object是class类的子类
Class Animal{...}
Class Dog extends Animal{...}
main(){
Animal a = new Animal();
Animal a_d = new Dog();
Dog d = new Dog();
boolean result1 = a instanceof Dog;
boolean result2 = a_d instanceof Dog;
boolean result3 = d instanceof Dog;
//返回值false true true
}
//3. object 是class接口的实现类
List list = new ArrayList();
boolean result = list instanceof List;
//返回值 true