如何在 IntelliJ 中搜索用给定注释注释的 类?

How to search for classes annotated with a given annotation in IntelliJ?

我有一个项目,其中许多 class 具有相同的简单名称,但装饰有不同的注释。

例如:

package com.example.base;

@Default
public class ClassName { }

package com.example.country;

@SomeCountrySpecific
public class ClassName extends com.example.base.ClassName { }

项目中有许多这样的 classes,并且所有这些都是 EJB 注入到其他 classes 的 constructors/setters.

在 IntelliJ 中,当我想导航到某些 class 时,我只能键入 class 名称,IDE 会找到所有 classes 并给出返回选项列表。您可以想象这个列表通常包含超过 15-20 个不同的 classes 并且导航和找到所需的列表是困难的。

但是,我想打开一个 class,它的名称等于 ClassName 并且 带有一些注释(例如 @SomeCountrySpecific).

这在 IntelliJ 中可行吗?

请注意,重命名子 class 不是一个选项。

尝试结构化编辑-查找-搜索。

它不是很优雅或那么方便,但这可能会为您提供所需的东西 (?)。您可以使用文件掩码和 "Text to find" 在以某种模式命名的文件中搜索注释。

另一种方法是使用 class 名称导航 (Ctrl+N) 打开定义注释的文件,然后 运行 "Find Usages" (Alt+F7)其名称。

使用这种方法,您将自动完成注释名称,这些名称可能比 @SomeCountrySpecific

长得多