wiki:EclipseRefact

리팩토링

  • 참고 도서 : 리팩토링 : 기존 코드의 디자인을 개선하는 방법 / 마틴 파울러 지음 ; 윤성준 ; 조재박 [공]옮김

Rename

  • 대상 : 패키지, 클래스, 메소드, 필드, 변수, 파라미터를 한꺼번에 변경가능
  • 프로젝트 이름이나 소스 폴더 이름도 가능
  • 대상을 선택 후 Refactor > Rename 또는 (Alt + Shift + R)

Rename Method 다이얼로그

Rename Type 다이얼로그

다이얼로그 체크박스

  • Update references : 변경 대상을 참조하는 곳의 이름도 바꾼다.
  • Keep original method as delegate to renamed method : 메소드 변경시, 새로 지정한 이름으로 메소드를 추가 후 기존 메소드는 새로 만든 메소드를 호출한다.
  • Rename getter/Rename setter : 필드 변경시 필드에 대한 게터/세터 메소드도 변경한다.
  • Update textual occurrences in comments nad strings (forces preview) : 클래스, 패키지 변경시 주석이나 문자열에 있는 이름도 바꾼다.
  • Update fully qualified name in non-java files(forces preview) : 클래스나 패키지 변경시 자바 파일이 아닌 텍스트 파일에서도 같은 이름은 변경 (클래스 이름이 전체 이름이어야 한다)
  • Rename subpackages : 패키지 변경시 서브 패키지 이름도 변경한다.

Rename in file

  • 지역 변수의 이름 변경시 다른 파일은 상관 없으니 Quick Fix(Ctrl + 1) 메뉴에서 Rename in file 선택한 다음 변수명을 변경하면 동시에 바뀐다.
  • Rename in file 모드 : Ctrl + 2, R

Move

  • Refacotr > Move (Alt + Shift + V)

클래스를 다른 패키지로 이동

  • Package Explorer 뷰에서 드래그/드랍 해도 동일한 적용

  • 다이얼로그 옵션

  • Update references to the moved element(s) : 이동하는 요소를 참조하는 곳도 수정
  • Update fully qualified names in non-java text files : 자바 파일이 아닌 텍스트 파일에서 나타나는 이름도 수정한다. (이름은 풀네임이어야 함)

새로운 패키지를 만들어서 이동할 경우

다이얼로그 우측 상단 Create Package 버튼 이용

메소드/필드를 다른 클래스로 이동

  • New target for '메소드 명' : 메소드가 이동할 수 있는 후보 클래스가 표시
  • New method name : 이동하는 메소드의 이름을 지정
  • New parameter name : 이동하는 메소드에 새로 추가될 파라미터 이름 지정 (메소드가 원래 클래스의 멤버를 참조할 경우)
  • Keep original method as delegate to moved method : 원래 클래스에 이동한 메소드를 호출 하는 위임메소드가 생성

패키지를 다른 프로젝트로

Package Explorer 뷰에서 패키지 선택하여 이동

프로젝트를 다른 위치로

Package Explorer 뷰에서 프로젝트 선택하여 이동

Change Method Signature

메소드 시그너처 변경시 이용

Refactor > Change Method Signature (Alt + Shift + C)

  • 접근지정자 변경(Access modifier) : 다른 클래스가 영향 받을 수 있음
  • 리턴 타입 변경 (Return type) : Content Assist 적용 가능
  • 메소드 이름 변경(Method name) :
  • 파라미터 타입/이름 변경 :
  • 파라미터 순서 변경 : up/down 키로
  • 파라미터 추가/삭제 : Add/Remove? 버튼
  • 예외 추가/삭제 :

Inline

메소드를 호출부에 코드로 직접 변경

인라인으로 변경할 메소드 선택 후 Refactor > Inline (Shift + Alt + I)

  • All invocations : 해당 메소드를 호출하는 곳 모두 수정
  • Only the selected invocation : 현재 선택한 호출부만 수정

Attachments