Java 코드에서 일부 멤버 변수에 직접 액세스했습니다. 이제 저는 리팩토링하고 getter와 setter를 사용하고 싶습니다. Eclipse가 자동으로 모든 직접 할당을 setter로 대체하고 getter로 각 액세스를 대체하도록하려면 어떻게합니까?Eclipse getter 및 setters 생성 및 자동 적용
오른쪽 클릭 -> 소스 -> 생성기 및 설정자는 함수를 생성하지만 나머지 코드에서는 적용하지 않습니다.
Java 코드에서 일부 멤버 변수에 직접 액세스했습니다. 이제 저는 리팩토링하고 getter와 setter를 사용하고 싶습니다. Eclipse가 자동으로 모든 직접 할당을 setter로 대체하고 getter로 각 액세스를 대체하도록하려면 어떻게합니까?Eclipse getter 및 setters 생성 및 자동 적용
오른쪽 클릭 -> 소스 -> 생성기 및 설정자는 함수를 생성하지만 나머지 코드에서는 적용하지 않습니다.
Refactor
메뉴를 사용하십시오. 그것은 "Source -> Generate Getters and Setters"처럼 getters와 setters를 생성하는 "encapsulate fields"항목을 가지고 있습니다. 게다가 필드의 모든 사용법을 대체하고 필드를 비공개로 만듭니다.
(니모 닉으로 : 리팩토링하는 기존 코드의 구조를 변경하려면 Refactor
메뉴를 사용하십시오. 아직 사용되지 않는 새 코드를 생성하려면 Source
메뉴를 사용하십시오. 새로운 getter와 setter가있는 클래스를 사용한다면 필드를 코딩하여 나중에 getter와 setters를 자동으로 생성하여 Source
메뉴의 도움말을 사용할 수 있습니다. 그러나 기존 코드에서 직접 필드 액세스 대신 getter 및 setter를 사용하려면이 코드를 사용하십시오. 코드 Refactor
ing의 고전적인 사례입니다.)
"Refactor"메뉴에서 " 캡슐화 필드 ... "메뉴 항목은 포함하지만"캡슐화 필드 ... "메뉴 항목은 아닙니다. 따라서 클래스에 필드가 많은 경우 사용자는 각 필드에 대해 "필드 캡슐화 ..."를 반복적으로 호출해야합니다. – 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