0

我试图了解 Checker Framework 如何实现可插入类型检查器。通过阅读文档,

检查器框架 (Maven)

我看到涉及很多设置,在我看来要么已经过时,要么没有完全维护。

据我所知,Java 8 在 JSR-308 和 JSR-269 上支持类型注释和可插入类型检查器,允许接口在几乎每个元素上创建自定义注释,并使用带有简单标志的接口代码片段对其进行处理在 javac (-processor) 上,maven 支持通过META-INF/services/javax.annotation.processing.Processor

那么为什么文档指出 Checker 需要这么多的定制..?:

  - com.google.errorprone.javac "error-prone" jdk if javac should support custom annotation processors (JSR-269)?
  - maven dependency plugin
  - mvn compiler plugin with annotationProcessorPaths (which I understand it overrides anything from the META-INF file) instead of `META-INF/services/javax.annotation.processing.Processor`

我认为自 Java 8 特性以来,Checker 框架实际上一直是自定义注释处理器的集合。是这样吗?似乎不再需要启用编译器、创建自定义检查 (JSR-269) 和启用/* @Nullable */等等......我很乐意纠正

4

1 回答 1

1

我看到涉及很多设置,在我看来要么已经过时,要么没有完全维护。

具体来说,什么看起来已经过时或“不太维护”?你的证据是什么?如果您只是做出未经证实的断言,社区将无法帮助您。

据我所知,Java 8 在 JSR-308 和 JSR-269 上支持类型注释和可插入类型检查器

你的阅读不正确。JSR 308 支持类型注释,但 JSR 269 不支持可插入类型检查器。您需要第三方工具(例如 Checker Framework)来执行可插入类型检查。

你能指出导致你得出这个结论的具体文本吗?细节会有所帮助,而不仅仅是没有支持的断言。

启用/* @Nullable */

对评论中的注释的支持已于 20 个月前结束。您能否指出导致您对评论中的注释提出问题的文本?

于 2019-12-18T18:16:05.810 回答