gpt4 book ai didi

intellij-idea - 使用 IntelliJ 查找具有特定参数类型的所有方法调用

转载 作者:行者123 更新时间:2023-12-04 15:41:47 25 4
gpt4 key购买 nike

我有这个相当大的代码库(+/- 500k 行)。我正在查找所有使用单个参数且该参数是特定类型的方法调用。

这意味着,我希望能够找到如下所示的方法调用:

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 的任何方法的所有调用?

最佳答案

你快到了。您现在需要做的就是设置 Expression type (regexp) $Parameter$ 到 Foo然后离开 Text/regexp空白的。此外,您可能希望启用 Apply constraint within type hierarchy复选框,也可以找到 Foo 的子类。

请注意,您可以留下 Text/regexp的所有变量空白。这相当于 .* .

关于intellij-idea - 使用 IntelliJ 查找具有特定参数类型的所有方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37972805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com