Community
Participate
Working Groups
Eclipse Version: Version: 3.1.0 Build id: 200412162000 Create this simple class in eclipse - public class TestEncapsulate { String a, b; } 1) Select the Field a 2) Right-click and select Refactor -> Encapsulate Field. 3) Click Ok. 4) The following code is generated - public class TestEncapsulate { String b; private int a; /** * @param a The a to set. */ void setA(String a) { this.a = a; } /** * @return Returns the a. */ String getA() { return a; } } Problems a) The field was changed to a private field even though it was package-private earlier. b) The data type was changed from String to int!!! The encapsulate field works fine when there is only one field delared in one line (String a;) It breaks in the above code for both fields 'a' & 'b'.
This happens when the member variables are package-private, protected or public. This does not happen when the variables are private.
*** Bug 82584 has been marked as a duplicate of this bug. ***
Fixed for M5.