I know I can generate setters and getters for fields in the Eclipse source menu, but I\'m very surprised it doesn\'t offer to replace the direct field accessors with calls t
There is a way. Focus on the attribute, right click. Select "Refactor" -> "Encapsulate Field".
(Edited to explain why it works, even though the menu's title doesn't imply it)
The "Encapsulate Field" dialog-box will create getters/setters for you if they don't exist, and will change field-access to go through the getters/setters. The dialog automatically detects existing getters/setters so, for the requirements that you had mentioned, that would do the trick.