2017-10-08 11 views
-1

는 다음과 같이 호출 :비슷한 방법을 많이 교체하는 가변 인수에 대응 방법에 대한 단일 호출 통화를 나는 방법의 전체 부하가

thing.doManyThings(a, b, c, d /* etc */); 

intellij에서이 리팩터링을 수행하는 올바른 방법은 무엇입니까?

내가 할 구조적 교체를 사용하고있다 :

  • $t$.doManyThings($a$); $t$.doManyThings($b$); ($a$$b$ 무한 다중성을 가진) 교체 $t$.doManyThings($a$, $b$);
  • $t$.doManyThings($a$); $t$.doOneThing($b$); ($a$ 무한한 다양성을 가진) 교체 $t$.doManyThings($a$, $b$);
  • $t$.doOneThing($a$); $t$.doOneThing($b$); 교체 와 $t$.doManyThings($a$, $b$);

일치하는 명령문 쌍을 병합하기 때문에 계속해서 마지막 단계를 반복해야하기 때문에 매번 doManyThings 번의 호출 수가 반으로 줄어들며 모든 작업을 병합해야합니다. .

이렇게해야 할 것보다 더 열심히 느낍니다.이 목표를 달성하기 위해 더 나은 방법을 가르쳐 주시겠습니까? :)

답변

-1

개인적으로 모든 문자열을 "thing.doOneThing ("쉼표 (,) 및 모든 문자열을 바꿀 다른 하나 ")를 대체하기 위해 정규식을 쓸 것입니다. \ n"\ n " , 당신은 당신이 수정하고 싶지 않은 파일에 더 많은 코드를 가지고있는 경우에 대비해 선택된 영역에 대해 이것을 할 수 있습니다. 접근 방식에 따라 앞뒤에 쉼표가 추가되지만, 이후에 쉼표로 구분 된 모든 인수 목록이 표시됩니다. 그런 다음 모든 호출을 쉼표로 구분 된 인수 목록을 붙여 넣는 doManyThings 메소드에 대한 단일 호출로 대체 할 수 있습니다.