我有许多Eclipse项目都使用特定包中的类,我们称之为“gr.serafeim”。现在,我想找到所有源文件中的哪些(每个文件的行号)是gr.serafeim的成员。问题是我通常使用导入而不是类的完全限定名称,因此搜索“gr.serafeim”只会返回import语句:(
我不想要任何东西,只是一个快速而肮脏的解决方案,找出包含gr.serafeim包类的所有行(eclipse插件?)。作为附加值,我不仅需要声明,还需要这些函数的方法调用。
这是我真正想要的一个例子:
// File main.java
import gr.serafeim.*;
public static void main(String args[]) {
// Test is a member of gr.serafeim !
Test t = new Test(5);
int i=3;
t.add(i);
}
我想从前一个文件返回的内容是这样的
main.java: 5: Test t = new Test(5);
main.java: 7: t.add(i);
如果以前不能完成,那么我也可以采用一种方法来大规模命名所有课程。声明
Test t = new Test(5);
会变成
gr.serafeim.Test t = new gr.serafeim.Test(5);
然后我只是grep for gr.serafiem。这当然无助于找到t.add(i)行,但这将是一个很好的第一步,我可以自己检查代码...
答案 0 :(得分:1)
右键单击 - >参考文献 - > (无论你想要什么)。对于工作区引用,Shift-Ctrl-G(默认情况下,无论如何)。
我认为默认结果列表是一棵树,可以更改为列表。我不认为它显示行号,但是,至少在我正在使用的略微过时的Eclipse版本中。如果您专门寻找行号,我认为默认工具没有包含它们的导出。
您可以尝试使用IntelliJ社区版;其搜索执行显示行号,结果可导出到文本文件(下面的片段)。
Class
server.UDPServer
Found usages (44 usages)
StartThread.java (6 usages)
(12: 19) private final UDPServer myserv;
(14: 17) StartThread(UDPServer server){
(18: 16) myserv.button1.setEnabled(false);
(19: 16) myserv.button2.setEnabled(true);
(30: 32) myserv.area.append("Server is started\n");
(37: 36) myserv.area.append(" Received "
答案 1 :(得分:1)
这是一个黑客:
使用package-info.java文件将软件包标记为已弃用:
@Deprecated
package com.yourcompany.yourpackage;
现在,您应该在使用软件包的任何地方看到编译器警告
答案 2 :(得分:1)
您可以选择类,构造函数,方法或字段,然后按“ctrl + alt + h”。这将打开调用层次结构菜单。