Java之"instanceof"和"isInstance"代码举例
2023-09-11 14:19:57 时间
源码:
1 /** 2 * @Date:2018-04-20 3 * @Description:判断Instance 4 * - instanceof方法返回一个boolean类型的值,意在告诉我们对象是不是某个特定的类型实例。 5 * - isInstance方法则是Class类中的一个Native方法,也是用于判断对象类型的。 6 **/ 7 public class InstanceDemo { 8 9 static void test(Object x) { 10 System.out.println("Testing x of type " + x.getClass()); 11 System.out.println("x instanceof A " + (x instanceof A)); 12 System.out.println("x instanceof B " + (x instanceof B)); 13 System.out.println("A.isInstance(x) " + A.class.isInstance(x)); 14 System.out.println("B.isInstance(x) " + 15 B.class.isInstance(x)); 16 System.out.println("x.getClass() == A.class " + 17 (x.getClass() == A.class)); 18 System.out.println("x.getClass() == B.class " + 19 (x.getClass() == B.class)); 20 System.out.println("x.getClass().equals(A.class)) " + 21 (x.getClass().equals(A.class))); 22 System.out.println("x.getClass().equals(B.class)) " + 23 (x.getClass().equals(B.class))); 24 } 25 26 public static void main(String[] args) { 27 test(new A()); 28 System.out.println("-------------------------"); 29 test(new B()); 30 } 31 32 } 33 34 class A { 35 } 36 37 class B extends A { 38 }
运行结果:
1 Testing x of type class org.study2.reflection.A 2 x instanceof A true 3 x instanceof B false 4 A.isInstance(x) true 5 B.isInstance(x) false 6 x.getClass() == A.class true 7 x.getClass() == B.class false 8 x.getClass().equals(A.class)) true 9 x.getClass().equals(B.class)) false 10 ------------------------- 11 Testing x of type class org.study2.reflection.B 12 x instanceof A true 13 x instanceof B true 14 A.isInstance(x) true 15 B.isInstance(x) true 16 x.getClass() == A.class false 17 x.getClass() == B.class true 18 x.getClass().equals(A.class)) false 19 x.getClass().equals(B.class)) true
相关文章
- Java连接MySQL数据库及简单操作代码
- 改善JAVA代码01:考虑静态工厂方法代替构造器
- Java实现 LeetCode 207 课程表
- Java实现 LeetCode 82 删除排序链表中的重复元素 II(二)
- Java实现 LeetCode_0048_RotateImage
- java实现第五届蓝桥杯扑克序列
- java实现第六届蓝桥杯无穷分数
- java实现购物券消费方案
- java算法集训代码填空题练习3
- java算法集训代码填空题练习2
- java算法集训代码填空题练习1
- Java实现蓝桥杯七对数字
- Java实现 蓝桥杯 算法提高 矩阵相乘
- Java实现十六进制转十进制
- 编写高质量代码改善java程序的151个建议——[110-117]异常及Web项目中异常处理
- 编写高质量代码改善java程序的151个建议——[1-3]基础?亦是基础
- 不通用版(从SVN取版本,通过MAVEN生成JAVA包,通过SALTSTACK传送到远程服务器并自动重启TOMCAT服务)PYTHON代码
- Java字节码(.class文件)的代码解析
- 如何优化JAVA代码
- Java Lambda表达式初探
- java简单的MVC登入代码
- 【JAVA】eclipse里代码整个前移或者后移的快捷键
- 【Java】java使用反射访问对象方法和成员变量
- Atitit web httphandler的实现 java python node.js c# net php 目录 1.1. Java 过滤器 servelet1 1.2. Python的
- Atitit.http代理的实现 代码java php c# python
- Atitit.uml2 api 的编程代码实现设计uml开发 使用eclipse jar java 版本
- SAP offline OData插件的JavaScript代码是如何调用到Android平台的Java代码的
- 当年的java考试:Java景区预约登记管理系统(maven整合servlet)
- 【华为OD机试 2023】最优高铁城市修建方案(C++ Java JavaScript Python)
- JAVA语言之Java 中不同的并行实现的性能比较
- java开发常用代码
- Java Instrumentation 内存马——主要是利用Instrumentation Java API来做内存注入,会用到反射机制,文中提到检测思路:注入jar包-> dump已加载class字节码->反编译成java代码-> 源码webshell检测
- Java组合模式:如何通过对象组合实现更高效的代码设计
- 【java】Java 抽象类
- 《图解数据结构与算法》(Java代码实现、注释解析、算法分析)