我正在开发一个在其中搜索特定方法的插件。现在我想显示所有在其中声明和使用的变量及其类型。我该怎么办?方法名是IMethod类型。
最佳答案
如果具有该IMethod的CompilationUnit,则可以将ASTParser
用作illustrated here):
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setSource(compilationUnit);
parser.setSourceRange(method.getSourceRange().getOffset(), method.getSourceRange().getLength());
parser.setResolveBindings(true);
CompilationUnit cu = (CompilationUnit)parser.createAST(null);
cu.accept(new ASTMethodVisitor());
然后您可以使用
ASTVisitor
cu.accept(new ASTVisitor() {
public boolean visit(SimpleName node) {
System.out.println(node); // print all simple names in compilation unit. in our example it would be A, i, j (class name, and then variables)
// filter the variables here
return true;
}
});