我正在开发一个项目,用于解析基于泽西的注释,以便在java源代码的项目之间构建请求交互图。
很容易解析并在每次思考时获取信息
@GET
@Path("/parameter/{param}")
public Response getParam(@PathParam("param") String prm) {
String output = "Jersey say : " + prm;
return Response.status(200).entity(output).build();
}
我可以提取 {方法:" GET",路径:"参数/ {param}"}
等值其他情况
private static final PARAMETER_PATH="/parameter/{param}";
@GET
@Path(PARAMETER_PATH)
public Response getParam(@PathParam("param") String prm) {
String output = "Jersey say : " + prm;
return Response.status(200).entity(output).build();
}
或
private static String PATH_VARIABLE_STR = "{param}";
private static PARAMETER_PATH = "/parameter/"+PATH_VARIABLE_STR;
@GET
@Path(PARAMETER_PATH)
public Response getParam(@PathParam("param") String prm) {
String output = "Jersey say : " + prm;
return Response.status(200).entity(output).build();
}
在最后两个案例中,我无法提取真正的价值。
当我使用javaparser,ast等处理静态源代码时,如何获取变量的值。
我在等你的建议。 感谢。
答案 0 :(得分:2)
JavaParser或其他解析器生成的AST不计算值。如果您的代码中有3 + 5
,这是一个补充,解析器将没有逻辑来解释它并得出结论,它等同于8
。您需要自己实现该逻辑。您希望基本上为Java创建解释器。我会说你可以轻松地做几个基本操作:考虑文字,基本的4个数学运算而不是更多。当然,如果你试图考虑整个Java语言,那么事情会很快失控。
免责声明:我是JavaParser撰稿人