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 –