JavaParser提取注释参数值

时间:2016-12-22 08:57:35

标签: java static jersey javaparser

我正在开发一个项目,用于解析基于泽西的注释,以便在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等处理静态源代码时,如何获取变量的值。

我在等你的建议。 感谢。

1 个答案:

答案 0 :(得分:2)

JavaParser或其他解析器生成的AST不计算值。如果您的代码中有3 + 5,这是一个补充,解析器将没有逻辑来解释它并得出结论,它等同于8。您需要自己实现该逻辑。您希望基本上为Java创建解释器。我会说你可以轻松地做几个基本操作:考虑文字,基本的4个数学运算而不是更多。当然,如果你试图考虑整个Java语言,那么事情会很快失控。

免责声明:我是JavaParser撰稿人