使用ctags从Java方法中提取类使用

amp*_*ent 6 java ctags abstract-syntax-tree

我想知道是否可以ctags使用从Java方法中提取类使用.到目前为止,我只能使用它来获取方法和实例变量的列表,但不能在方法中使用哪些类.

例如

...
public void doSomething(MyClass myClassInst) {
     int someVar = myClassInst.getSomeVar();
     System.out.println("Some var is " + someVar);
}
...
Run Code Online (Sandbox Code Playgroud)

现在,我得到的是对方法声明的认可.但我想提取的是,doSomething它也使用了类MyClass,System但不仅仅是解析文本,还要知道包括包(java.lang.Systemcom.mypackage.MyClass)在内的完整类地址.

为了能够提取这种元数据,ctags需要访问编译器abstract syntax tree,我不确定它是否这样做,或者它只是对源代码进行文本解析.

有没有办法完成我尝试使用ctags做的事情,或者它是否超出了它的功能范围?

Aru*_*han 1

您可以使用asmBCEL来实现此目的。