2014-02-06 34 views
5

在我的Java代碼中,我直接訪問了一些成員變量。現在我想重構並使用getter和setter。我如何讓Eclipse自動使用setter來替換所有的直接任務,並使用getter來每次訪問?Eclipse生成getter和setter並自動應用它們

右鍵單擊 - >源代碼 - >生成Getters和Setter只是創建函數,但不會在代碼的其餘部分應用它們。

+0

可能的重複http://stackoverflow.com/questions/3973204/eclipse-jdt-is-there-a-refactoring-to-replace-direct-field-accesses- with-setter – Jonn

回答

13

使用Refactor菜單。它有一個「封裝字段」,它產生的getter和setter就像「Source - > Generate Getters and Setters」一樣,但是除此之外,它取代了字段的所有用法,並且使字段保密。

(作爲一個記憶:要改變現有代碼的結構(即重構它),使用Refactor菜單以生成尚未使用,使用Source菜單新代碼也就是說,如果您創建一個。你可以使用Source菜單的幫助,只需對字段進行編碼,然後自動生成getter和setter。但是,如果你希望現有的代碼使用getters和setter而不是直接字段訪問,那麼這個是代碼Refactor ing的經典案例。)

+0

在「重構」菜單下,我看到一個「封裝字段...「菜單項,但不是」封裝字段...「菜單項。所以如果一個類有很多字段,用戶被迫重複調用每個字段的「Encapsulate Field ...」。 – JohnC

+1

@JohnC - 就這樣。當你編寫一個新的類時,這些字段還沒有被使用,你可以使用「Generate Getters and Setters」選項。對於重構來說,通常只有一件事情被一次操作改變。 – chiccodoro

相關問題