instanceof关键字介绍
instanceof关键字在java当中严格意义上来讲是一个双目运算符.3001.7020,用来测试一个对象是不是另一个类(接口)的实例,或者直接或者间接子类或者实现类 对象 /null instance interface/类/抽象类
实例:
boolean result = obj instanceof Class
if(obj instanceof Object){}
obj必须是引用类型,不能是基本类型
@Test\
public void test02(){
System.out.println(4 instanceof Object);
}
instanceof运算符只能作为对象的判断。
当引用类型是枚举类型的时候
public static void getShowAllInstance(){
for (ProjectEnums value : ProjectEnums.values()) {
if(value instanceof ProjectEnums){
System.out.println(value.getProjectName());
}
}
}
@Test
public void Test03(){
System.out.println("-----------------------");
System.out.println(String.class instanceof Class);
System.out.println(Class.class instanceof Class);
boolean result = Class.class instanceof Object;
System.out.println(result);
}
obj 为null
java分两种数据类型,一种是基本数据类型,一共八中,另一种是引用类型,包括类、接口、数组、枚举和特殊的null类型,null类型没有名字,null引用时null类型的唯一可能的值,null引用可以转换成任意引用类型,null可以使任意引用类型的特殊符号。 javase当中对于instanceof规范的规定是如果obj是null,返回FALSE
@Test
public void Test04(){
System.out.println(null instanceof Class);//false
System.out.println(null instanceof Object);//false
System.out.println(null instanceof String);//false
}
obj 为类的实例对象
没啥可说的TRUE
obj 为接口实现类的实例
是实现类是TRUE,不是FALSE