如何在没有使用JDT设置完整代码的情况下获取语句

时间:2015-12-23 10:33:43

标签: java eclipse eclipse-jdt

如何在没有设置完整代码的情况下获取AST节点的语句(没有set class和method / constructor)。
例如我已经设置了这样的代码:

for(int i=0;i<4;i++){
    System.out.println(i);
}

我创建了简单的代码,但它不起作用:

ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setSource("for(int i=0;i<4;i++) {\nSystem.out.println(i);}".toCharArray());
parser.setKind(ASTParser.K_COMPILATION_UNIT);
final CompilationUnit cu = (CompilationUnit) parser.createAST(null);
cu.accept(new ASTVisitor() 
{
    public boolean visit(ForStatement node)
    {
        System.out.println (node.getExpression());
        return true;
    }
});

1 个答案:

答案 0 :(得分:0)

我的建议你可以通过添加这样的代码来制作一些技巧:

String statement="for(int i=0;i<4;i++) {\nSystem.out.println(i);}";
parser.setSource(("class fo{\nvoid foo(){\n" + statement + "\n}\n}").toCharArray());
parser.setKind(ASTParser.K_COMPILATION_UNIT);

Hopefull回答你的问题。