use*_*712 6 java intellij-idea
我有一个包含数百个接口实现的项目。我想在该接口的一个实现中找到一种方法的用法。Intellij(和 Eclipse)都向我展示了该方法在所有实现中的所有用法 - 数百个。
我突出显示该接口的一个实现中的方法,右键单击并选择“查找用法”,它会向我显示该方法在所有实现中的所有用法。
Intellij 中的所有使用选项似乎都无法为我提供一种实现。
public interface Dog {
void bark(int volume);
}
public class Lab implements Dog {
public void bark(int volume) {
System.out.println("woof");
}
}
public class Collie implements Dog {
public void bark(int volume) {
System.out.println("woof");
}
}
public class Main {
public static void main(String[] args) {
Dog onyx = new Lab();
Dog lassie = new Collie();
onyx.bark(50);
lassie.bark(20);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我突出显示 Lab bark 方法,单击显示用法,我只想查看 main.java 中的 onyx.bark(50) 行,而不是 main.java 中的两种树皮用法。
我意识到,如果我在主类中使用 Lab onyx = new Lab() 和 Collie lassie = new Collie() ,查找引用将起作用,但这不是项目的编写方式。当类型是接口时,IDE 可能无法确定实现类,但它肯定有用。
正如评论所说,所使用的实现是在运行时确定的,因此 Intellij 不能将使用结果限制为一种实现。但是,Intellij 支持建议创建自定义范围来限制使用搜索。这有点帮助,尽管创建范围要求您知道您使用的一般区域,这可能是您首先进行使用搜索的区域。就我而言,我可以创建一个仅包含我们公司为项目编写的代码的范围。这将结果从 500 多个减少到了 80 左右。
要在 Intellij 中创建自定义范围,请选择“文件”-“设置”-“外观和行为”-“范围”。单击对话框中间的加号,选择本地或共享,并为其命名。在对话框的右半部分,您可以包含/排除/递归包含/递归排除库、包等。
然后,当您执行查找用法(或其他搜索)时,单击结果中的齿轮图标,并在下拉列表中选择新范围。
| 归档时间: |
|
| 查看次数: |
1026 次 |
| 最近记录: |