5
votes

In my Java code I directly accessed some member variables. Now I want to refactor and use getter and setters. How can I make Eclipse automatically replace all direct assignments with setters and each access with a getter?

Right click -> Source -> Generate Getters and Setters just creates the functions but does not apply them in the rest of the code.

1
Possible duplicate of stackoverflow.com/questions/3973204/…Jonn

1 Answers

13
votes

Use the Refactor menu. It has an item "encapsulate fields" which generates getters and setters just as "Source -> Generate Getters and Setters" does, but in addition it replaces all usages of the fields and makes the fields private.

(As a mnemonic: To change the structure of existing code (i.e. to refactor it), use the Refactor menu. To generate new code that is not used yet, use the Source menu. That is, if you create a new class with some getters and setters, you can use the help of the Source menu by coding the fields only and auto-generate the getters and setters afterwards. However if you want existing code to use getters and setters instead of direct field access, this is a classic case of code Refactoring.)