开发者社区> 朱小厮> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Java判断类和实例的关系

简介:    通常我们使用instanceOf关键字来判断一个对象是否是类的实例,最近博主看到isInstance关键字,不解与instanceOf的区别,故度娘了一下,顺便涨了一下姿势。
+关注继续查看

   通常我们使用instanceOf关键字来判断一个对象是否是类的实例,最近博主看到isInstance关键字,不解与instanceOf的区别,故度娘了一下,顺便涨了一下姿势。
   Java中判断类和实例的关系有3个关键字:instanceof, isInstance以及isAssignableFrom.

  • instanceof:用来判断对象是否是类的实例
  • isInstance:用来判断对象是否属于某个类型的实例
  • isAssignableFrom:用来判断类型间是否存在派生关系

  看完上面的解释,是否还在云里雾里?
  下面来详细说明一下。
  instanceof运算符 只被用于对象引用变量,检查左边的被测试对象 是不是 右边类或接口的 实例化。如果被测对象是null值,则测试结果总是false。
  形象地描述为:自身实例或子类实例 instanceof 自身类 返回true
例:

String s=new String("javaisland");
System.out.println(s instanceof String); //true

  Class类的isInstance(Object obj)方法,obj是被测试的对象,如果obj是调用这个方法的class或接口 的实例,则返回true。这个方法是instanceof运算符的动态等价。
  形象地描述为:自身类.class.isInstance(自身实例或子类实例) 返回true
例:

String s=new String("javaisland");
System.out.println(String.class.isInstance(s)); //true

  Class类的isAssignableFrom(Class cls)方法,如果调用这个方法的class或接口 与 参数cls表示的类或接口相同,或者是参数cls表示的类或接口的父类,则返回true。
  形象地描述为:自身类.class.isAssignableFrom(自身类或子类.class) 返回true
例:

System.out.println(ArrayList.class.isAssignableFrom(Object.class));  //false
System.out.println(Object.class.isAssignableFrom(ArrayList.class));  //true

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
<< Java >> String类详解
<< Java >> String类详解
0 0
Java 创建类报错
Java 创建类报错
0 0
<<Java>> Object 类
<<Java>> Object 类
0 0
Java基础之Optional类(JDK1.8新特性)
Optional是一个容器,它可以保存类型T的值,或者仅仅保存null,Optional类主要是用来避免空指针异常(NPE),其提供的一系列的方法配合Lambda表达式可以让代码更加清晰,语义化,以及避免了空指针异常的问题,这里要注意是避免空指针异常,而不是避免返回null。
0 0
java类在何时被加载
java类在何时被加载
0 0
java类的构造方法
java类的构造方法
0 0
java中的类
java中的类
0 0
JNI用C加载JDK产生JVM虚拟机,并运行JAVA类main函数(MACOS/LINUX/WINDOWS)
JNI用C加载JDK产生JVM虚拟机,并运行JAVA类main函数(MACOS/LINUX/WINDOWS)
0 0
【Java基础知识3】Java注释:单行、多行、文档注释(如何通过 javadoc 命令生成代码文档、如何在IEDA配置自动为所有的类都添加创建者和创建日期)
【Java基础知识3】Java注释:单行、多行、文档注释(如何通过 javadoc 命令生成代码文档、如何在IEDA配置自动为所有的类都添加创建者和创建日期)
0 0
一个类的两个接口有同名函数,JAVA如何调用
一个类的两个接口有同名函数,JAVA如何调用
0 0
+关注
朱小厮
主要从事消息中间件的相关研发工作,著有《RabbitMQ实战指南》。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
JAVA 应用排查全景图
立即下载
Java工程师必读手册
立即下载
Java应用提速(速度与激情)
立即下载