让我们看一下如何使用Eclipse JDT中的ASTParser解析Java语句序列。
通过说一条语句序列,我的意思是来自如下方法的代码行:
int i = 9; int j = i+1;
这是如何执行此操作的代码。
public static void main(String[] args) {
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setSource("int i = 9; \n int j = i+1;".toCharArray());
parser.setKind(ASTParser.K_STATEMENTS);
Block block = (Block) parser.createAST(null);
//here can access the first element of the returned statement list
String str = block.statements().get(0).toString();
System.out.println(str);
block.accept(new ASTVisitor() {
public boolean visit(SimpleName node) {
System.out.println("Name: " + node.getFullyQualifiedName());
return true;
}
});
}
在上面的代码中,parser.setKind(ASTParser.K_STATEMENTS)使解析器接受语句序列。设置为此后,parser.createAST(null)将返回一个Block而不是CompilationUnit。
最后,开发这么多年我也总结了一套学习Java的资料与面试题,如果你在技术上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系方式,有时间记得帮我点下转发让跟多的人看到哦。