JavaParser提取注释参数值

标签 java static jersey javaparser

我正在开发一个项目来解析基于 Jersey 的注释,以从 java 源代码构建项目之间的请求交互图。

当每个人都这样想时,很容易解析和获取信息

@GET    
@Path("/parameter/{param}")
public Response getParam(@PathParam("param") String prm) {    

    String output = "Jersey say : " + prm;    
    return Response.status(200).entity(output).build(); 

}

我可以提取诸如{Method:"GET", Path:"parameter/{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 等处理静态源代码时,如何获取变量的值

我正在等待您的建议。 谢谢。

最佳答案

JavaParser 或其他解析器生成的 AST 不计算值。如果您的代码中有 3 + 5,这是一个添加,解析器将没有逻辑来解释它并得出结论,这相当于 8。您需要自己实现该逻辑。您基本上想要为 Java 创建一个解释器。我想说,对于几个基本运算,您可以轻松做到这一点:考虑文字、基本的 4 种数学运算,仅此而已。当然,如果您尝试考虑整个 Java 语言,事情很快就会失控。

免责声明:我是 JavaParser 贡献者

关于JavaParser提取注释参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41279203/

相关文章:

java json Controller

c# - 为什么我的静态类没有在 ASP.NET MVC 中初始化?

java - Jackson LocalDate/Time 反序列化

java - 如何处理 Spring Boot 重定向到/错误?

makefile - 使用 OpenBLAS、ARPACK、LAPACK 和 SuperLU 构建静态 Armadillo

unit-testing - 如何使用 Jersey 测试框架启用 CDI?

java - 能否从 native 代码访问 java 对象,反之亦然?

java - 如何将字符串存储在数组中,然后打印它的放入顺序

java - 了解 CSV 文件的分隔符

static - dart const 静态字段