instanceof关键字用于测试一个对象是否是一个类的对象或者是这个类子类的对象(这里的类包含interface,接口)。
语法:
boolean res=obj instanceof Class
1、obj的类型不能为基本类型(但可以为包装类和String)
public class InstanceofTest {
public static void main(String[] args) {
Integer a=15;
String b="12";
System.out.println(a instanceof Integer);
System.out.println(b instanceof String);
}
}
//输出
//true
//true
2、obj为null
null比较特殊,它可以说成什么对象都是,也可以什么都不是,但java并不把他认为是某个类的对象,什么时候都返回false。所以写代码时请注意是否为null。
public class InstanceofTest {
public static void main(String[] args) {
System.out.println(null instanceof Integer);
}
}
//输出
//false
3、子类父类的情况
public class InstanceofTest {
public static void main(String[] args) {
List a=new ArrayList<>();
ArrayList b=new ArrayList<>();
System.out.println(a instanceof List);
System.out.println(a instanceof ArrayList);
System.out.println(b instanceof List);
System.out.println(b instanceof ArrayList);
}
}
//输出
//true
//true
//true
//true