2010-08-14 22 views
11

我有一個類A和BM擴展A.現在我想要使用eclipse的代碼生成選項來創建B的構造函數,它接受B的所有字段的參數和值(我的意思是它應該也設置從A繼承的字段)。如何在eclipse中生成構造函數

有沒有什麼捷徑可以在eclipse中生成這樣的代碼?

回答

6

的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; 
    } 
} 
21

右鍵單擊編輯器,然後單擊「源 - >使用字段生成構造函數」。您可以選擇要使用的超級構造函數,並選擇要添加到構造函數中的實例變量。

+1

但它不會生成超類的公共/受保護成員的初始化,我認爲這是OP後面的內容。 – aioobe 2010-08-14 19:58:23

+0

@aioobe - 同意,這是akshays問題的主要指針。 – 2010-08-15 08:49:32

2

有沒有自動的方式來做到這一點,我接近相信,日食團隊的目的是這樣做,因爲它會導致糟糕的設計。

構建一個類是關於僅初始化對象自己的字段。如果您需要在超類上設置(init)字段,請調用超類構造函數,如果您需要更改超類字段,請調用超類getter和setter方法。

對我來說,這是不好的設計,以初始化超類字段,可以很容易地避免。

相關問題