Java外部类的构造方法中声明内部类的问题

来源:互联网 发布:淘宝关注店铺送优惠券 编辑:程序博客网 时间:2024/06/06 10:42

RT,我在写代码时碰到一个以下问题:

1.类A 的无参构造方法中 调用 有参(参数类型为B)构造方法,出现了以下问题.

2.1.若B为A的内部类,则编译出错

2.2.若B为普通类,则无问题.

代码如下:


内部类:

public class A1 {B1 b;public A1() {this(new B1());//此处编译出错}public A1(B1 b) {this.b = b;}public class B1 {}}

普通类:

public class A2 {B2 b;public A2() {this(new B2());//此处没有问题}public A2(B2 d) {this.b = d;}}class B2 {}


有什么解决办法吗?

1. 把内部类B改成 static

2.因为一些原因,内部类B不能是static,有什么别的解决办法吗?


补充:


内部类这么写也没问题:

public class A1 {B1 b;public A1() {b=new B1();//这么写没问题.//this(new B1());}public A1(B1 b) {this.b = b;}public class B1 {}}

参数资料:

http://blog.csdn.net/shuixin536/article/details/8989776

http://stackoverflow.com/questions/2741066/why-does-a-sub-class-class-of-a-class-have-to-be-static-in-order-to-initialize-t

0 0