JAVA判断对象是不是属于哪一个类 instanceof , isInstance ,isAssignableFrom
2016-02-15 21:56
579 查看
转自http://blog.sina.com.cn/s/blog_4e1e357d0100xr1m.html
instanceof是运算符只被用于对象引用变量,检查左边的被测试对象是不是右边类或接口的实例化。如果被测对象是null值,则测试结果总是false。
String str = new String("测试");
System.out.println(str instanceof String);
//输出true。
isInstance(Object obj)方法,这个方法与instanceof等价,其中obj是被测试的对象,如果obj是调用这个方法的class或接口的实例,则返回true。
String str = new String("测试");
System.out.println(String.class.isInstance(str));
//输出true。
isAssignableFrom(Class cls)方法,如果调用这个方法的class或接口与参数cls表示的类或接口相同,或者是参数cls表示的类或接口的父类,则返回true。
System.out.println(String.class.isAssignableFrom(Object.class));
System.out.println(Object.class.isAssignableFrom(String.class));
//其中第一个输出false,第二个输出true。
instanceof是运算符只被用于对象引用变量,检查左边的被测试对象是不是右边类或接口的实例化。如果被测对象是null值,则测试结果总是false。
String str = new String("测试");
System.out.println(str instanceof String);
//输出true。
isInstance(Object obj)方法,这个方法与instanceof等价,其中obj是被测试的对象,如果obj是调用这个方法的class或接口的实例,则返回true。
String str = new String("测试");
System.out.println(String.class.isInstance(str));
//输出true。
isAssignableFrom(Class cls)方法,如果调用这个方法的class或接口与参数cls表示的类或接口相同,或者是参数cls表示的类或接口的父类,则返回true。
System.out.println(String.class.isAssignableFrom(Object.class));
System.out.println(Object.class.isAssignableFrom(String.class));
//其中第一个输出false,第二个输出true。
相关文章推荐
- The Java™ Tutorials — Concurrency :Deadlock 死锁
- JAVA基础之泛型
- 如何在windows上使用eclipse远程连接hadoop进行程序开发
- 利用ParameterizedType获取java泛型参数类
- 线性表之顺序表--类似于java库中的ArrayList
- EJB--实体Bean
- java 是值传递还是引用传递
- 战五渣系列之六(5分钟还搞不懂多线程?)
- The Java™ Tutorials — Concurrency :Liveness 活跃度
- The Java™ Tutorials — Concurrency :Atomic Access 原子访问
- Spring笔记
- Spring MVC 中 HandlerInterceptorAdapter的使用
- 蓝桥杯 算法训练 动态数组使用
- Java的构造器
- 用RMI实现基于Java的分布式计算
- [Java]读取文件方法大全
- 蓝桥杯 算法训练 删除数组零元素
- Java内存模型
- java项目与javaweb项目导入jar包的区别
- Java [Leetcode 67]Add Binary