IDE & Apps/IntelliJ Idea

깃털보다 가벼운 IntelliJ(인텔리J)팁 5 - Class & Method Signature변경

Figo Kim 2016. 5. 10. 21:57
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

오늘은 IntelliJ의 Refactoring 기능에 대해서 얘기해봅시다. 

사실 refactoring이라는게 IDE의 기능을 통해서 뚝딱 효과적으로 될 수 없는것이기는 하지만, 

그래도 IDE가 제공하는 기본 기능을 통해서 여기저기 왔다갔다 하면서, 그리고 Copy & Paste를 하면서
코드를 수정하는 수고를 많이 덜 수 있다고 보여집니다.


우선 Class Signature에 대한 refactoring을 알아봅시다.


IntelliJ에서 Class level의 signature 변경은 일반 Class를 Generic으로 변경하는 작업을 조금이나마 편하게 해준다.


일단 아래와 같은 형태로 두개의 class가 있다고 가정하자.


MyClass는 MyClass2를 아래와 같이 참조한다.


이러한 상황에서 MyClass2를 Generic으로 변경해보자.

우선 변경하고자 하는 MyClass2의 class명에 커서를 둔 후, Command + F6키를 눌러보자.

아래와 같은 창이 나타난다.


아래와 같이 Generic 파라미터를 설정해주면 된다.




설정 후, MyClass2의 Signature와 해당 클래스를 참조하는 부분에서 generic type이 명시된 것을 확인할 수 있다.



다음으로 Method에 대한 signature변경에 대해서 확인해봅시다.

기본적으로 Class에서의 그것과 비슷합니다. 

아래와 같이 정수값을 받는 함수가 있고,


이를 호출하는 부분은 아래와 같습니다. myCalculation을 호출하는 함수에는 사용되지 않는 double타입의 변수가 있고,

해당 변수는 myCalculation으로 전달되어야 할 경우, 


Class에서와 마찬가지로 참조하는 위치에 커서를 둔 후, Command + F6키를 누르면 아래와 같은 팝업이 나타납니다.

Method에서의 signature 변경의 경우, 해당 함수의 범위, 반환값, 함수명등도 함께 변경할 수 있으며,

필요시에 예외 처리도 추가할 수 있습니다.


앞서 작업할 예정인 double타입의 myDouble변수를 아래 그림과 같은 방법으로 추가해줍니다.

주의해야 할 점은 Method Call방법 선택인데, 기존 함수의 parameter를 변경하는 방법으로 refactoring을 하려면 Modify를 그렇지 않고, 새로운 함수를 만든 후, 기존 함수를 호출하는 방법으로 가려면 Delegate via overloading method를 선택하면 됩니다.


파라미터를 정상적으로 입력 후 Refactor버튼을 누르면 아래와 같이 함수가 변경된 것을 확인할 수 있습니다.



참고로 Delegate via overloading method 방법을 선택하게 되면 아래와 같이 변경이 됩니다.


나머지 기능은 추후 조금씩 확인해보도록 합시당~!!