假设我有两个班级:
public Class1 {
/* class body*/
}
public Class2 extends Class1 {
public Class2 (int var1, int var2) {
super(var11, var2);
}
}
现在我需要确定我拥有哪个类对象。在这种情况下,如何确定我有Class1
或Class2
对象?
Object var1 = new Class1(1,2);
Object var2 = new Class2(1,2);
var2 instanceof Class2; /*true*/
var2 instanceof Class1 /*true*/
在两种情况下,instanceof
将返回true。
答案 0 :(得分:4)
您可以使用equals
:
if (this.getClass().equals(Class1.class) {
// Do something...
}
答案 1 :(得分:0)
测试它是否不是子类的实例:
object instanceof Superclass
&& !(object instanceof Subclass)
或者,使用if / else链:
if (object instanceof Subclass) {
// Do something.
} else if (object instanceof Superclass) {
// Do something else.
}
选择取决于您实际使用的目的。