Java对象类型的判断详解

 更新时间:2019年04月28日 11:55:03   作者:zeling1005  
这篇文章主要介绍了Java对象类型的判断,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

instanceof

判断某个对象是否是某个类的实例或者某个类的子类的实例。它的判断方式大概是这样的:

public<T> boolean function(Object obj, Class<T> calzz) {
    if (obj == null) {
      return false;
    }
    try {
      T t = (T) obj;
      return true;
    } catch (ClassCastException e) {
      return false;
    }
  }

Class.equals()

这种方式比较的类型,一定是本身才返回true,子类或者父类都返回false;

 // B是A的子类,C是B的子类
    B b = new B();
    // false
    System.out.println(b.getClass().equals(A.class));
    // true
    System.out.println(b.getClass().equals(B.class));
    // false
    System.out.println(b.getClass().equals(C.class));

PS:b.getClass().equals(A.class)等同于b.getClass() == A.class

Class.isInstance()

这个方法跟instanceof完全等价。

 // B是A的子类,C是B的子类
    B b = new B();
    // true
    System.out.println(A.class.isInstance(b));
    // true
    System.out.println(B.class.isInstance(b));
    // false
    System.out.println(C.class.isInstance(b));

Class.isAssignableFrom

判断某个类是否是另一个类和其子类。

 // B是A的子类,C是B的子类
    // false
    System.out.println(B.class.isAssignableFrom(A.class));
    // true 
    System.out.println(B.class.isAssignableFrom(B.class));
    // true
    System.out.println(B.class.isAssignableFrom(C.class));

以上所述是小编给大家介绍的Java对象类型的判断详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Java Spring 控制反转(IOC)容器详解

    Java Spring 控制反转(IOC)容器详解

    这篇文章主要为大家详细介绍了Spring控制反转IoC入门使用的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • MybatisX中xml映射文件中命名空间爆红的解决

    MybatisX中xml映射文件中命名空间爆红的解决

    本文主要介绍了MybatisX中xml映射文件中命名空间爆红的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • mybatis foreach传两个参数批量删除

    mybatis foreach传两个参数批量删除

    这篇文章主要介绍了mybatis foreach 批量删除传两个参数,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • java实现的冒泡排序算法示例

    java实现的冒泡排序算法示例

    这篇文章主要介绍了java实现的冒泡排序算法,结合实例形式分析了冒泡排序算法的具体操作步骤与实现技巧,需要的朋友可以参考下
    2017-01-01
  • IntelliJ IDEA 设置代码提示或自动补全的快捷键功能

    IntelliJ IDEA 设置代码提示或自动补全的快捷键功能

    这篇文章主要介绍了IntelliJ IDEA 设置代码提示或自动补全的快捷键功能,需要的朋友可以参考下
    2018-03-03
  • 解析springboot包装controller返回值问题

    解析springboot包装controller返回值问题

    这篇文章主要介绍了springboot包装controller返回值问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • Java利用Redis实现高并发计数器的示例代码

    Java利用Redis实现高并发计数器的示例代码

    这篇文章主要介绍了Java利用Redis实现高并发计数器的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • java通过jacob实现office在线预览功能

    java通过jacob实现office在线预览功能

    这篇文章主要为大家详细介绍了java通过jacob实现office在线预览功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • Flink JobGraph生成源码解析

    Flink JobGraph生成源码解析

    这篇文章主要为大家介绍了Flink JobGraph生成源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • java Spring AOP详解及简单实例

    java Spring AOP详解及简单实例

    这篇文章主要介绍了java Spring AOP详解及简单实例的相关资料,需要的朋友可以参考下
    2017-05-05

最新评论