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.youkuaiyun.com/shuixin536/article/details/8989776