在我的Java代碼中,我直接訪問了一些成員變量。現在我想重構並使用getter和setter。我如何讓Eclipse自動使用setter來替換所有的直接任務,並使用getter來每次訪問?Eclipse生成getter和setter並自動應用它們
右鍵單擊 - >源代碼 - >生成Getters和Setter只是創建函數,但不會在代碼的其餘部分應用它們。
在我的Java代碼中,我直接訪問了一些成員變量。現在我想重構並使用getter和setter。我如何讓Eclipse自動使用setter來替換所有的直接任務,並使用getter來每次訪問?Eclipse生成getter和setter並自動應用它們
右鍵單擊 - >源代碼 - >生成Getters和Setter只是創建函數,但不會在代碼的其餘部分應用它們。
使用Refactor
菜單。它有一個「封裝字段」,它產生的getter和setter就像「Source - > Generate Getters and Setters」一樣,但是除此之外,它取代了字段的所有用法,並且使字段保密。
(作爲一個記憶:要改變現有代碼的結構(即重構它),使用Refactor
菜單以生成尚未使用,使用Source
菜單新代碼也就是說,如果您創建一個。你可以使用Source
菜單的幫助,只需對字段進行編碼,然後自動生成getter和setter。但是,如果你希望現有的代碼使用getters和setter而不是直接字段訪問,那麼這個是代碼Refactor
ing的經典案例。)
在「重構」菜單下,我看到一個「封裝字段...「菜單項,但不是」封裝字段...「菜單項。所以如果一個類有很多字段,用戶被迫重複調用每個字段的「Encapsulate Field ...」。 – JohnC
@JohnC - 就這樣。當你編寫一個新的類時,這些字段還沒有被使用,你可以使用「Generate Getters and Setters」選項。對於重構來說,通常只有一件事情被一次操作改變。 – chiccodoro
可能的重複http://stackoverflow.com/questions/3973204/eclipse-jdt-is-there-a-refactoring-to-replace-direct-field-accesses- with-setter – Jonn