仅限A类的Java对象实例

时间:2015-04-28 12:45:39

标签: java

B extends B1, B1 extends B2, ... Bn extends A

B b = new B();
A a = new A();

A =>的实例真正, b instanceof A =>真

但我想知道A的直接实例。

3 个答案:

答案 0 :(得分:4)

为什么不与班级比较?

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
    }

}

答案 1 :(得分:1)

您可以使用A.getClass()来获取对象的Class名称。获得类名后,可以构建directInstance逻辑

答案 2 :(得分:0)

您可以检查您的对象是否与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