如何实例化多个嵌套的非静态内部类 - java

时间:2015-04-09 05:21:15

标签: java inner-classes non-static

我有以下代码:

public class InnerClassStuff {
   public class A{
       public class AA{}
    }
}

我的问题是我如何才能实现AA对象?

我已经尝试了以下但是它不会编译:

public static void main(String[] args){
   InnerClassStuff object = new InnerClassStuff();
   A a = object.new A();
   AA aa = object.a.new AA(); //error
}

2 个答案:

答案 0 :(得分:1)

要实例化内部类,必须首先实例化外部类。所以,你不能声明A a= ..,你需要把它包装在外面的类中,如下所示:

InnerClassStuff object = new InnerClassStuff();
InnerClassStuff.A.AA a = object.new A().new AA();

或者,

InnerClassStuff object = new InnerClassStuff();
InnerClassStuff.A a = object.new A();
InnerClassStuff.A.AA aa = a.new AA();

答案 1 :(得分:0)

要访问类,必须使用外部类名,只有通过这样做才能拥有内部类的引用变量。例如:

InnerClassStuff object = new InnerClassStuff();
InnerClassStuff.A a = object.new A();
InnerClassStuff.A.AA aa = a.new AA();