欢迎支持笔者新作:《深入理解Kafka:核心设计与实践原理》和《RabbitMQ实战指南》,同时欢迎关注笔者的微信公众号:朱小厮的博客。


欢迎跳转到本文的原文链接:https://honeypps.com/java/relationship-of-java-class-and-instance/

   通常我们使用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

欢迎跳转到本文的原文链接:https://honeypps.com/java/relationship-of-java-class-and-instance/

欢迎支持笔者新作:《深入理解Kafka:核心设计与实践原理》和《RabbitMQ实战指南》,同时欢迎关注笔者的微信公众号:朱小厮的博客。


Java判断类和实例的关系相关推荐

  1. java判断实例_java判断类和实例的关系

    1.instanceOf关键字,用来判断对象是否是类的实例 2.isAssignableFrom,用来判断类型间是否存在派生关系 3.isInstance方法,用来判断对象是否属于某个类型的实例 pa ...

  2. java语言类间继承关系是,Java语言类间的继承关系是(    )。

    Java语言类间的继承关系是(    ). 更多相关问题 [判断题] 持有OPEN票的游客不需要机票的确认,可直接按票面时间去机场乘坐飞机.() [填空题] 导游服务性质是().().().().() ...

  3. 判断类之间的父子关系

    如何判断两个类之间的父子关系? java为我们提供了instanceof运算符,可以用来判断一个对象是否是否个类的实例,所以很容易的想到子类的对象肯定是父类的实例.但是如何所涉及到的类是不可实例化的该 ...

  4. [Java基础]类和接口的关系

    类和接口的关系:

  5. Java BigInteger类| 带实例的splitAndRemainder()方法

    BigInteger类divideAndRemainder()方法 (BigInteger Class divideAndRemainder() method) divideAndRemainder( ...

  6. MySQL字段类型与Java实体类类型对应转换关系

    MySQL Connector/J( MySQL官方JDBC驱动程序)在处理MySQL数据类型和Java数据类型之间的转换方面非常灵活. 通常,任何MySQL数据类型都可以转换为java.lang.S ...

  7. Java多类合作实例1汽车和修理厂

    实例1 先分析后下代码,先完成汽车类的分析 汽车: 可以看做是一个类 成员变量: 名字 颜色 轮胎个数 成员方法: 飙车 飙车有要求,轮胎个数必须是4个 该方法是需要一个汽车类的对象 修理厂 可以看做 ...

  8. 18、Java面向对象——类和对象的关系及应用、对象数组的应用

    目录 课前先导: 一.什么是类? 二.类的创建 三.什么是对象? 四.对象的创建.赋值:方法的调用 五.定义类和对象的三种方法 六.对象数组 七.来了,你们要的对象 课前先导: 在刚开始学习java的 ...

  9. java 长方体类_java实例_多态 [长方形类Rect长方体类Cub添加抽象类 Shape]

    代码实现 package Lab6; import java.util.Scanner; abstract class shape { public abstract double area(); p ...

最新文章

  1. 一次幸运的集群操作与修复经历
  2. .NET中的OleDb,Odbc的Parameters
  3. 《BI那点儿事》三国人物智力分布状态分析
  4. java dataurl_java url参数去重
  5. MySQL调用存储过程
  6. 如何让 zend studio 10 识别 Phalcon语法并且进行语法提示
  7. Koa / Co / Bluebird or Q / Generators / Promises / Thunks 的相互关系
  8. TreeSet集合中的自定义比较器
  9. 基于GDAL库,读取海洋风场数据(.nc格式)c++版
  10. synchronized和ReentrantLock区别,用新的lock有什么好处?举例说说
  11. 数据结构与算法分析c++第四版_数据结构与算法 - 时空复杂度分析
  12. 信息学奥赛一本通 1039:判断数正负 | OpenJudge NOI 1.4 01
  13. 剑指offer——判断树的子结构
  14. RabbitMq下载和安装linuxcenteros安装
  15. epoll原理_Epoll源码阅读手札
  16. python识别颜色1007python识别颜色_python读取word文档识别字段颜色,解析字段
  17. Python day 3 (3) 判断与循环
  18. Vue+Webpack打造todo应用
  19. 良心安利Unity3D U3D游戏源码素材网站
  20. 叶俊应浙江警官学院的邀请讲授《司法警官的心理调试实用策略》

热门文章

  1. php 微信机器人_微信小程序机器人自动客服功能
  2. 020303阶段三 I/O复用 select和epoll的文件描述符管理
  3. Handler 源码解析(Java 层)
  4. linux 压缩及解压缩 命令
  5. HBase Replication源码解析之HLog读取
  6. bootstrap之排版类
  7. Android ViewPager
  8. linux之Vim使用
  9. 表现层(jsp)、持久层(类似dao)、业务层(逻辑层、service层)、模型(javabean)、控制层(action)...
  10. windows下如何github ssh 公钥