instanceof 是 Java 的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。
严格来说,instanceof 是 Java 的一个二元操作符(双目运算符),类似于 ==,>,< 等操作符。用来测试一个对象是否是为一个类的实例,用法为:
boolean result = obj instanceof class
其中 obj 为一个对象,Class 表示一个类或者一个接口。
当 obj 为 Class 的对象,或者是其直接或间接子类,或者是其接口的实现类,结果result 都返回 true,否则返回false。
注意:编译器会检查 obj 是否能转换成右边的class类型,如果不能转换则直接报错,如果不能确定类型,则通过编译,具体看运行时定。
int i=0;
//编译不通过i必须是引用类型,不能是基本类型
System.out.println(i instanceof Integer);
//编译不通过
System.out.println(i instanceof Object);
Integer integer=newInteger(1);
//输出true
System.out.println(integer instanceof Integer);
//false,在JavaSE规范中对instanceof运算符的规定就是:如果obj为null,那么将返回false。
System.out.println(null instanceof Object);
来源:https://blog.csdn.net/qq_27706119/article/details/118344254