如何查找与特定枚举类型有关的name()的所有用法

时间:2018-10-01 13:21:01

标签: java intellij-idea enums structural-search

我需要找到在特定枚举类型上调用的name()方法的所有用法。

假设我有枚举:

enum MyEnum {
    A, B, C;
}

我想接收所有在MyEnum元素上调用该方法的所有位置。可以在诸如A.name()B.name()之类的特定元素上调用它,但是也可以在参数或迭代变量上调用它,例如:

String myMethod(MyEnum myEnum) {
    return myEnum.name();
}

到目前为止,我可以通过在MyEnum的每个元素上按 Alt + F7 和枚举类型本身,然后查找包含{{ 1}}调用结果。但这需要大量的手工工作。

我尝试过的另一种方法是按 Alt + F7 ,在类似name()的语句中将光标放在方法的名称上,但是发现所有{ {1}}调用了任何枚举类型。

那么有可能更容易,更快地做到这一点吗?

1 个答案:

答案 0 :(得分:2)

在结构搜索中(编辑>查找>在结构上搜索...),搜索:

$e$.name()

然后点击“编辑变量...”,选择e,然后将“表达式类型(regexp)”设置为您感兴趣的枚举。

(请记住,Enum<?>类型的任何引用都可能包含对MyEnum的引用,因此您可能还需要考虑寻找那些引用)