java如何获取静态内部类变量

public class A{
private B b;

public B getB() {
    return b;
}

public void setB(B b) {
    this.b = b;
}

static class B{
    private C c;
    public C getC() {
        return c;
    }
    public void setC(C c) {
        this.c = c;
    }
}
static class C {
    private Integer a;


    public Integer getA() {
        return a;
    }
    public void setA(Integer a) {
        this.a = a;
    }
}

}
如何获取C类的变量a?

 A a = new A();
    a.getB().getC().getA()

A a = new A();
test.getB().getC();

B类弄个public的不就行了吗

之所以叫做内部类,就只能在本类(A)中访问
要取值的话,new C().getA()不就行了

static修饰的类作为静态类,类初始化后内存中就只有一份。

因为C是A的静态内部类,所以可以直接在A类中访问C的,测试代码:

    public static void main(String[] args) {
        A a = new A();
        C c  = new C();
        c.setA(10);
        System.out.println(c.getA());
    }

你如果要绕圈子通过B类来获得C类的a属性值,可以如下:

    public static void main(String[] args) {
        B b = new B();
        C c  = new C();
        b.setC(c);
        c.setA(100);
        System.out.println(b.getC().getA());
    }