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 {
}
}
參數資料: