java中instanceof用法
大家好,又见面了,我是你们的朋友全栈君。
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: false instanceoftest test case 2: —————— a instanceof A: true a instanceof B: true b instanceof A: true b instanceof B: true instanceoftest test case 3: —————— b2 instanceof A: true b2 instanceof B: true b2 instanceof C: true */
特别说明: 接口也可以作为instanceof的右操作数。
实践是检验真理的唯一标准。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158470.html原文链接:https://javaforall.cn
相关文章
- MiniDao1.9.0 版本发布,轻量级Java持久化框架
- java switch用法_Java switch语句
- java编写一个学生类和教师类,Java创建一个学生类[通俗易懂]
- java怎么用_如何使用Java编写程序
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- setproperty java_Java中System.setProperty()的用法
- java 唯一随机数_JAVA随机数
- 【说站】java Channel是什么
- Deep Java Library_java atomicinteger
- java executeupdate_Java自学-JDBC execute与executeUpdate的区别
- Java web-httpservlet中cookie的用法
- Java正则表达式(一看就懂)
- GitHub Copilot最新升级!61%的Java开发者用来摸鱼,工作效率提升55%
- java并发编程(1):Java多线程-基本线程类-基础知识复习笔记
- Java泛型type体系详解编程语言
- Java中枚举的写法和用法详解编程语言
- [转]恕我直言,在座的各位根本不会写 Java!详解编程语言
- 服务器使用Java进行Linux服务器监控(java监控linux)
- 时间Java操作Redis实现设置有效期(redisjava过期)
- 时间处理Java中Redis设置和处理过期时间(redisjava过期)
- 学习Java技术:使用Redis的简单方法(javaredis用法)
- 使用Java连接SQL Server数据库,轻松实现数据交互(java连sqlserver)
- Linux上善用Java:实现智能开发(linux 运行java)
- Java程序建立Oracle数据库表的实现方式(java建oracle表)
- 开启Redis之门Java中的跳表(redis跳表Java)