是否可以从内部类实例访问outter类实例?

时间:2015-07-21 11:27:47

标签: java

想象一下,我有一个内部静态类的类

public class A {
    public static class B {
    }
}

在代码中的其他地方有一个B类实例,我可以访问A类实例吗?

3 个答案:

答案 0 :(得分:2)

没有。由于您声明了B static,因此没有对A的引用。

答案 1 :(得分:2)

你做不到。 Bstatic类,其所有实例未绑定A的实例。

如果B不是static,那么就有可能。

答案 2 :(得分:1)

只有在您添加对A的显式引用时才可行,例如:

public class A {
    public static class B {
        private final A a;

        public B(A a){
            this.a = a;
        }
    }
}

如果内部字符B不是静态的,则此引用将隐式可用(使用不同的语法):

public class A {
    public class B {
        ...
        A a = A.this;
        ...
    }
}