当前位置: 移动技术网 > IT编程>开发语言>Java > Java对象类型的判断详解

Java对象类型的判断详解

2019年07月19日  | 移动技术网IT编程  | 我要评论

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对象类型的判断详解整合,希望对大家有所帮助

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网