Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

Eclipse에서 메서드 정의로 이동시 인터페이스(Interface)가 아닌 구상(Implementation) 클래스의 정의로 이동하기

이클립스에서 메서드의 정의롤 보기 위해서 해당 메서드에서 F3을 누르거나 Ctrl + 클릭을 하면 해당 메서드가 정의된 곳으로 이동하게 됩니다.(소스를 읽을때 꼭 필요한 편리한 기능입니다.) 하지만 일반적으로 클래스를 정의할때 커플링을 줄이고 테스트용도로 DI를 하기 위해서 Interface를 쓰게 되는데 이럴경우 Interface로 선언이 되어 있기 때문에 정의로 이동해도 인터페이스의 정의로 이동합니다. 로직을 보려고 정의(Declaration)로 이동한 것인데 인터페이스에는 로직이 없기 때문에 프로젝트뷰에서 다시 구상(Implementaion) 클래스를 열어서 봐야합니다.


이런 불편함은 아래와 같은 방법으로 해결할 수 있습니다.

이클립스에서 튤팁을 연 모습

이클립스 버전이 3.6 Helios이상이라면 Ctrl + 클릭으로 이동할 때 바로 클릭하지 않고 메서드위에 마우스를 올리면 위와 같은 튤팁메뉴가 나와서 인터페이스의 선언부로 이동할 것인지 구상클래스의 선언으로 이동할 것인지를 선택할 수 있습니다.(이전 버전에 위처럼 사용할 수 있는 플러그인이 따로 있는것 같습니다.)

인터페이스 계층창을 연 화면

메서드 위에서 Ctrl + T를 클릭하면 위 화면처럼 해당 인터페이스를 구현한 클래스의 계층 구조를 모두 볼 수 있고 여기서 원하는 구상클래스를 선택해 주면 됩니다. 앞에서 설명한 방법도 구상클래스가 1개일때는 바로 이동하지만 구상클래스가 여러개일때는 Ctrl + T를 누른 튤팁과 동일한 튤팁이 나오고 여기서는 필터링 기능도 있기 때문에 많은 클래스 내에서도 쉽게 찾을 수 있습니다.(오랜만에 본격적 자바코딩을 하니 몰랐던게 많군요 ㅎ)
2011/05/06 00:04 2011/05/06 00:04