|
Cannot reference this before supertype constructor has been called.
改成这样就可以
class Outer{
static class Inner1 extends Outer{}
class Inner2 extends Inner1{}
}
这样也行
- class Outer{
- public Outer(){
- class Inner1 extends Outer{}
- class Inner2 extends Inner1{}
- }
- }
复制代码
我想可以这样理解: 如果去实例化Inner2 将无法进行,因为当你去实例化它时,编译器并不知道Inner1.但以上两个种改变,则不同.Inner1 为静态类,当然早早就调用它的构造方法啦,而放在Outer的构造方法中,这两个内部类总是先经过外部类的,所以也没问题.
以上是个人想法,希望能\"引玉\". |
|