有没有办法使用jdt ASTParser来获取java文件中声明的String字段的值。实际上我需要的是解决其他类的任何可能的依赖关系,例如
public String str =“somethig”+ SomeTherClass.SOMETHING_ELSE。
答案 0 :(得分:2)
我想通了......实际上很简单..这就是代码:
ICompilationUnit cu = ....
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setResolveBindings(true);
parser.setSource(cu);
parser.setStatementsRecovery(true);
parser.setBindingsRecovery(true);
ASTNode node = parser.createAST(null);
node.accept(new YourVisitor());
然后在您的ASTVisitor实现中,您需要在被访问的节点上调用resolveConstantExpressionValue()。