B extends B1, B1 extends B2, ... Bn extends A
B b = new B();
A a = new A();
一个的instanceof A =>真实, b的instanceof A =>真正Java对象的instanceof类A仅
,但我想知道一个只直接实例。
B extends B1, B1 extends B2, ... Bn extends A
B b = new B();
A a = new A();
一个的instanceof A =>真实, b的instanceof A =>真正Java对象的instanceof类A仅
,但我想知道一个只直接实例。
你为什么不和课堂比较?
public class ClassTest {
class A{
}
class B extends A{
}
public static void main(String[] args) {
ClassTest t = new ClassTest();
A a = t.new B();
System.out.println(a instanceof B); //true
System.out.println(a instanceof A); //true
System.out.println(a.getClass().equals(B.class)); //true
System.out.println(a.getClass().equals(A.class)); //false
}
}
您可以使用A.getClass()获取对象的Class名称。一旦你有了类名称,你就可以构建你的directInstance逻辑
你可以检查你的对象是否有与A.class
相同的类对象。
A a = new A();
B b = new B();
System.out.println(a.getClass().equals(A.class)); //will display true
System.out.println(b.getClass().equals(A.class)); //will display false
请问你能否进一步解释一下你的意思是什么 –
接口怎么样? – Leo
isDirectInstance(a,A) - > true,isDirectInstance(b,A) - > false –