java 中的instanceof 是一个二元操作符(运算符)运算符,由于是字母组成,所以是Java的保留关键字,但是和>=,<=,==属同一类,它的作用是用来判断,instanceof 左边对象是否为instanceof 右边类的实例,返回一个boolean类型值。还可以用来判断子父类的所属关系。
语法:
boolean result = object instanceof Class
需要注意的是,如果object为null返回的是false。
test:
public interface Human {
}
public class Person implements Human{
}
public class Boy extends Person {
}
public class Demo {
public static void main(String[] args) {
Boy boy = new Boy();
Boy boy2 = null;
Person person = new Person();
Person person2 = new Boy();
System.out.println(boy instanceof Person);//true
System.out.println(boy instanceof Human);//true
System.out.println(boy instanceof Boy); //true
System.out.println("=======");
System.out.println(boy2 instanceof Person);//false
System.out.println(boy2 instanceof Human);//false
System.out.println(boy2 instanceof Boy); //false
System.out.println("=======");
System.out.println(person instanceof Boy);//false
System.out.println(person instanceof Human);//true
System.out.println(person instanceof Person);//true
System.out.println("=======");
System.out.println(person2 instanceof Boy);//true
System.out.println(person2 instanceof Human);//true
System.out.println(person2 instanceof Person);//true
}
输出的结果:
true
true
true
=======
false
false
false
=======
false
true
true
=======
true
true
true