欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java对象类型的判断详解

程序员文章站 2023-12-10 17:23:16
instanceof 判断某个对象是否是某个类的实例或者某个类的子类的实例。它的判断方式大概是这样的: public boolean func...

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