2011-10-25 2 views
4

완전한 Java 애플리케이션에서 배치 리팩토링을 수행하는 방법을 찾고 있습니다. 즉, 메소드 메소드 인수를 최종적으로 마무리 할 수 ​​있습니다.Java 메소드 인수를 최종적으로 만들기위한 일괄 리팩토링

여기에있는 누군가가 그런 도구에 대해 알고 있습니까? 또는 Java 소스를 파싱하고 이러한 변경 사항으로 확장 될 수있는 항목.

+0

관심의 대상에서이 작업을 수행하려는 이유는 무엇입니까? – NPE

+0

@aix 솔직히 말해서 필요하지 않은 것처럼 보일 수도 있습니다. 그러나 나는 또한이 스타일을 채택했다. 실수로 메소드 인수를 재 할당하지 않게합니다. 대부분이 문제는 아니지만 인수를 최종적으로 마무리하려는 노력은 거의하지 않습니다. 또한 다른 인수가 일관되게 인수가 끝나지 않은 인수가있는 경우이 인수를 재 지정하려는 경우 (예 : 문자열을 자른 버전으로 바꾸는 경우) 즉시 명확합니다. –

+0

나는이 아이디어에 동정적이지만, 나의 방법은 일반적으로 너무 작아서 단지 여분의 소리 일 뿐이다. 나는 그것을 잠시 시도했지만 포기했다 - 자바는 이미 읽기가 어려웠다. –

답변

7

IntelliJ에서 최종 변경 될 모든 필드, 로컬 변수 또는 매개 변수를 변경하기 위해 대량 변경을 수행 할 수 있습니다.

옵션을 사용하여 코드 분석을 수행하고 "적용 적용"을 전역 적으로 수행하면 이상한 경우에 항상 100 % 올바르게 표시되지는 않으므로 컴파일을 계속하십시오.

+0

쿨! 아마도 IntelliJ에게 기회를 주어야 할 것 같습니다. 나는 SVN에서 물건을 검사하는 것에 문제가 있었기 때문에 그리 멀지 않았습니다. –

+0

대단히 감사합니다 !!! :-) –

0

Eclipse 또는 NetBeans에서 그러한 리팩터링에 대해 알지 못합니다. 그러나 괜찮은 정규식 대체가 트릭을 수행합니다. 그렇게해서는 안되는 장소에서 우연히 수행하지 않도록하기 위해 수동으로 교체 할 때마다 확인하십시오. 하지만 수백 가지 수업이있는 경우 실제로는 실현 가능하지 않을 수 있습니다. 이 경우 모든 곳에서 바꾸기를 수행 한 다음 이전 버전과의 diff를 확인하는 것이 유용 할 수 있습니다.

어떤 인수도 덮어 쓰기되어 최종적으로 작성되지 않아야하며, 컴파일하는 동안 명확 해집니다.

+0

Netbeans 7.1beta는 "Inspect and Transform"과 비슷한 것을 시작했습니다. 이미 사용 가능한 예는 사용되지 않은 가져 오기 문을 제거하는 것입니다. 나는이 검사를하는 것이 시간 문제라고 생각한다. –

+0

@JanGoyvaerts 흥미 롭습니다! 보다 강력한 리팩토링은 언제나 좋습니다. 사용하지 않은 가져 오기에 대해서는 Ctrl + Shift + i 키를 사용하여 가져 오기를 수정해야하며 사용되지 않는 항목은 제거해야합니다. 적어도 7.0.1에서는 그렇게합니다. –

4

Peter Lawrey가 말했듯이 IntelliJ는 그렇게합니다.

분석 -> 코드를 검사 -은 "코드 스타일의 문제"섹션에서>가 정의 프로파일

을, 당신은 :

이 필드를

This inspection reports any fields which may safely be made final. A static field may 
be final if it is initialized in its declaration or in one static class initializer, but 
not both. A non-static field may be final if it is initialized in its declaration or in 
one non-static class initializer or in all constructors. 
Powered by InspectionGadgets 

지역 최종 수 있습니다 변수 또는 매개 변수는 최종 일 수 있습니다.

This inspection reports parameters or local variables, found in the specified inspection 
scope, that may have a final modifier added. 

Use check boxes in the inspection options below, to define whether parameters or local 
variables (or both) are to be reported. 

이렇게하면 안전하게 될 수있는 변수를 최종적으로 만 작성하지만, 찾으려는 변수는 최종이 아닌 상태로 남습니다. 아직도, 그것들을 발견하는 방법입니다.

관련 문제