instanceof关键字的作用
instanceof严格来说是java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为:
boolean result=obj instanceof class
其中obj为一个对象,而class表示一个类或者一个接口,当obj为class的对象,或者是其直接或者间接子类,或者是其接口的实现类 ,结果result都返回true,否则返回false.
注意:编译器会检查obj是否能转换成右边的class类型,如果不能转换则直接报错,如果不能确定类型,则通过编译,具体看运行时定
int i=0;
System.out.println(i instanceof Integer);//编译不通过
System.out.println(i instanceof Object);//编译不通过
Integer integer=new Integer(1);
System.out.println(integer instanceof Integer);//true
//false ,在JAVASE规范中对instanceof 运算符的规定就是:如果obj为null,name将返回false
System.out.println(null instanceof Object);