欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

Java对象类型的判断详解

时间:2020-11-20 17:23:18|栏目: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));

上一篇:浅谈SSH框架中spring的原理

栏    目:JAVA代码

下一篇:详解Java实现负载均衡的几种算法代码

本文标题:Java对象类型的判断详解

本文地址:http://www.codeinn.net/misctech/24332.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有