다소 큰 (+/- 500k 라인) 코드베이스가 있습니다. 하나의 매개 변수를 사용하는 모든 메서드 호출을 찾고 그 매개 변수가 특정 형식 인 것을 찾고 있습니다. 라고IntelliJ를 사용하여 특정 매개 변수 유형으로 모든 메서드 호출 찾기
public class Foo { }
public class Bar { }
public class Doer{
public void doSomethingFoo(Foo foo) { }
public void doSomethingObject(Object object) { }
}
public class Usage {
Doer doer = new Doer();
public doSomething() {
Foo anObject = new Foo();
Bar bar = new Bar();
doer.doSomethingFoo(anObject);
doer.doSomethingObject(anObject);
doer.doSomethingObject(bar);
}
}
doer.doSomethingFoo(anObject)
모두 이후 및 doer.doSomethingObject(anObject)
, 모두 그 문은 검색에서 반환해야합니다
이 내가 방법을 찾을 수 있도록하려면, 의미하는 바는 다음과 같이 요구한다. 마찬가지로 doer.doSomethingObject(bar)
은 반환되지 않습니다. 물론, doer
이 있다는 것을 나는 모른다.
IntelliJ의 구조 검색을 사용하려고합니다. 나는 다음과 같은 매개 변수를 사용하여, 다음과 같은 템플릿 $Instance$.$Method$($Parameter$)
을 사용했습니다 :
$Instance$ -> Text/regexp = .*
$Method$ -> Text/regexp = .*
$Parameter$ -> Text/regexp = Foo
Minimum count = 1 // Minimum one Foo parameter
Maximum count = 1 // Maximum one Foo parameter
이 foo
(대소 문자 구분, 분명히)라는 이름의 매개 변수가 모두를 반환합니다. 그래서 나는 아마 여기 뭔가 잘못하고 있습니다. 근데 뭐? 유일한 매개 변수의 유형이 Foo
인 모든 메소드에 대한 모든 호출을 얻으려면 어떻게해야합니까?
이것은 훌륭합니다! 그러나, 나는 정말로 그것을 스스로 발견 할 수 있다고 생각하지 않는다. 텍스트는 실제로 그 옵션이하는 것에 관해 명시 적으로 보이지 않는다. –
어떤 텍스트를 보았습니까? 아마도 우리는 그것들을 향상시킬 수 있을까요? –
음, 하나의 "text/regexp for java expression type"에 대해. "자바 표현 유형"은 완전히 불분명하다. 나는 그 근거만으로 그것을 기각했다. 나는 영어가 모국어가 아니며, 완성되었습니다. 실제로 "메서드의 형식 인수 형식에 대한 text/regexp"를 테스트했습니다.이 메서드는 원했던 것처럼 보이지만 doer.doSomethingObject (foo) 호출을 얻을 수 없습니다. "자바 표현 유형"들어, "자바 인수 클래스 또는 인터페이스"같은 것을 사용하십시오. 나는 "타입"이 무엇인지는 알고 있지만, 특히 여기서는 "Ctrl + N"이 "클래스 이름을 입력하십시오"라고 말하면서 그것을 읽으 려하지 않을 것이고 인터페이스도 반환 할 것입니다. –