我有一個類A和BM擴展A.現在我想要使用eclipse的代碼生成選項來創建B的構造函數,它接受B的所有字段的參數和值(我的意思是它應該也設置從A繼承的字段)。如何在eclipse中生成構造函數
有沒有什麼捷徑可以在eclipse中生成這樣的代碼?
我有一個類A和BM擴展A.現在我想要使用eclipse的代碼生成選項來創建B的構造函數,它接受B的所有字段的參數和值(我的意思是它應該也設置從A繼承的字段)。如何在eclipse中生成構造函數
有沒有什麼捷徑可以在eclipse中生成這樣的代碼?
的Eclipse(3.5)在選項用於特定的情況下,沒有建成,但我無論如何都會建議你在超類,其子類通過在其構造super(...)
調用獨立的構造。
這會更容易維護。例如,如果您在超類中添加一個字段,則還需要記住更新子類。
class A {
int i;
public A(int i) { this.i = i; }
}
class B extends A {
int j;
public B(int i, int j) {
super(i);
this.j = j;
}
}
右鍵單擊編輯器,然後單擊「源 - >使用字段生成構造函數」。您可以選擇要使用的超級構造函數,並選擇要添加到構造函數中的實例變量。
有沒有自動的方式來做到這一點,我接近相信,日食團隊的目的是這樣做,因爲它會導致糟糕的設計。
構建一個類是關於僅初始化對象自己的字段。如果您需要在超類上設置(init)字段,請調用超類構造函數,如果您需要更改超類字段,請調用超類getter和setter方法。
對我來說,這是不好的設計,以初始化超類字段,可以很容易地避免。
但它不會生成超類的公共/受保護成員的初始化,我認爲這是OP後面的內容。 – aioobe 2010-08-14 19:58:23
@aioobe - 同意,這是akshays問題的主要指針。 – 2010-08-15 08:49:32