1. java 中的instanceof介绍:
首先,java 中的instanceof是一个运算符,而且是二目运算符,即有两个操作数。该运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。
用法:
result = object instanceof class
参数:
Result:布尔类型。
Object:必选项。任意对象表达式。
Class:必选项。任意已定义的对象类。
说明:
如果 object 是 class 的一个实例,则 instanceof 运算符返回 true。如果 object 不是指定类的一个实例,或者 object 是 null,则返回 false。
2. 举例说明如下:
例子如下:
interface A{}
class B implements A{
}
class C extends B {
}
对于以上代码,测试结果分析如下:
boolean res;
A a=null;
B b=null;
res = a instanceof A; //因为a是null,所以结果为false
res = b instanceof B; //因为b是null,所以结果为false
a=new B();
res = a instanceof A; //因为a是B类型的实例,B又是A的一个实现类,所以结果为true
res = a instanceof B; //因为a是B类型的实例,所以结果为true
B b2=(C)new C();
res = b2 instanceof A; //因为b2是C类型的实例,而C是B的子类,B又是A的一个实现类,所以结果为true
res = b2 instanceof B; //因为b2是C类型的实例,所以结果为true
res = b2 instanceof C; //因为b2是C类型的实例,而C是B的子类,所以结果为true
全部测试代码:
package com.instanceoftest;
interface A{}
class B implements A{
}
class C extends B {
}
class instanceoftest {
public static void main(String[] args){
A a=null;
B b=null;
boolean res;
System.out.println("instanceoftest test case 1: ------------------");
res = a instanceof A;
System.out.println("a instanceof A: " + res);
res = b instanceof B;
System.out.println("b instanceof B: " + res);
System.out.println("/ninstanceoftest test case 2: ------------------");
a=new B();
b=new B();
res = a instanceof A;
System.out.println("a instanceof A: " + res);
res = a instanceof B;
System.out.println("a instanceof B: " + res);
res = b instanceof A;
System.out.println("b instanceof A: " + res);
res = b instanceof B;
System.out.println("b instanceof B: " + res);
System.out.println("/ninstanceoftest test case 3: ------------------");
B b2=(C)new C();
res = b2 instanceof A;
System.out.println("b2 instanceof A: " + res);
res = b2 instanceof B;
System.out.println("b2 instanceof B: " + res);
res = b2 instanceof C;
System.out.println("b2 instanceof C: " + res);
}
}
测试结果:
/*
result:instanceoftest test case 1: ——————
a instanceof A: false
b instanceof B: falseinstanceoftest test case 2: ——————
a instanceof A: true
a instanceof B: true
b instanceof A: true
b instanceof B: trueinstanceoftest test case 3: ——————
b2 instanceof A: true
b2 instanceof B: true
b2 instanceof C: true*/
特别说明: 接口也可以作为instanceof的右操作数。
实践是检验真理的唯一标准。
今天的文章java中的instanceof_instanceof typeof区别「建议收藏」分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/74707.html