java - 有没有办法使用静态代码分析来确定某个类型的所有字段是否都有注释?

标签 java code-analysis static-analysis

我有一些 POJO,用于在我的应用程序及其 Web 服务中随机播放数据。我们刚刚引入了一个注释来帮助我们验证那些 POJO 中的 String 字段是否具有一定的长度。这让我们可以验证 POJO,而不是等待数据库层在异常持续存在时吐出异常。

我现在想对那些对象进行分析,这些对象将告诉我哪些字段是没有这个新注释的字符串。我想这样做是为了获得没有此注释的字段列表,以便可以将其与其相应的数据库字段进行比较,并添加带有正确长度的注释作为其参数。

不,我们无法在 POJO 和数据库对象之间获得更好的关联。

不,我们的数据库对象没有可用的验证。我们真的希望这种验证发生在 POJO 上,因为它更容易在运行时验证和报告无效数据。

是否有一些静态分析工具可以帮助我完成这项任务?

最佳答案

当然可以。

解析 Java 代码。走 AST。在类的 AST 中找到感兴趣的字段(可能需要您还进行名称和类型解析(“符号表”),以便您可以从任意其他字段中区分您的字段),并检查 AST 以获取所需的注释。

您可以使用任何 Java AST 解析器(和名称解析器)执行此操作。我认为 Eclipse 可以提供这个。我们的DMS Software Reengineering Toolkit可以做到这一点。 ANTLR似乎有一个 Java 解析器,但我怀疑它是否有 Java 名称和类型解析。

关于java - 有没有办法使用静态代码分析来确定某个类型的所有字段是否都有注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6228035/

相关文章:

java - 确保正确设置了 HTTPS 连接

powershell - 如何验证powershell条件语法?

python - 如何提示程序员在python中使用try except子句?

c# - 如何抑制所有类型成员的代码分析消息?

c - 在 C 中生成跨多个文件的现有函数列表

java - 使用 CGLIB/Spring AOP 时如何防止误报空指针警告?

java - Android - Activity 在无限循环中重新启动

java - 异步等同于 Java 中的 BlockingQueue?

java - 在 Java 3d 中将平截头体转换为投影矩阵

code-analysis - 开始分解现有应用程序的最佳方法是什么?