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