[英]Get Abstract Syntax tree for Java method using JDT Eclipse
我正在一個必須使用Eclipse JDT來解析Java方法並為其生成抽象語法樹的項目上,我編寫了以下代碼:
String method ="\n"+
" public void sayHello() {\n"+
" System.out.println(\"Hello \"+name+\"!\");\n"+
" }\n";
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setKind(ASTParser.K_COMPILATION_UNIT);
parser.setSource(method.toCharArray());
parser.setResolveBindings(true);
parser.setBindingsRecovery(true);
CompilationUnit unit = (CompilationUnit)parser.createAST(null);
這個片段只是創建了AST,但是我被卡住了!! 我想訪問任何Java方法的AST並打印其路徑。 我可以為java方法獲取打印AST嗎?
Eclipse AST(就像大多數AST一樣)廣泛地利用了訪問者模式。
因此,從您的角度出發,您要做的就是實例化一個訪問者,並使其訪問編譯單元。 然后它將自動導航字段,方法,注釋...
對於您的特定需求,我認為您可以從以下代碼開始:
unit.accept(new ASTVisitor() {
@Override
public boolean visit(MethodDeclaration node) {
Type ownerTypeNode = (Type) node.getParent();
System.out.println("Found method " + node.getName().getFullyQualifiedName() " + " in type " + ownerTypeNode.getName().getFullyQualifiedName());
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.