Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 可插拔类型检查程序和检查程序框架,真的需要所有这些设置吗?_Java_Spring Boot_Annotation Processing_Jsr_Checker Framework - Fatal编程技术网

Java 可插拔类型检查程序和检查程序框架,真的需要所有这些设置吗?

Java 可插拔类型检查程序和检查程序框架,真的需要所有这些设置吗?,java,spring-boot,annotation-processing,jsr,checker-framework,Java,Spring Boot,Annotation Processing,Jsr,Checker Framework,我试图理解Checker框架是如何实现可插入类型检查器的。 通过阅读文档 我看到了很多的设置涉及,并期待在我看来要么过时或不太曼蒂 据我所知,Java 8在JSR-308和JSR-269上支持类型注释和可插入类型检查器,允许一个接口在几乎每个元素上创建自定义注释,并在javac(-processor)上使用带有简单标志的接口代码片段对其进行处理,maven通过META-INF/services/javax.annotation.processing.Processor 那么,为什么文档说明Ch

我试图理解Checker框架是如何实现可插入类型检查器的。 通过阅读文档

我看到了很多的设置涉及,并期待在我看来要么过时或不太曼蒂

据我所知,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`
我认为自Java8特性发布以来,Checker框架一直是一个有效的自定义注释处理器集合。是这样吗?启用编译器、创建自定义检查(JSR-269)和启用
/*@Nullable*/
等似乎不再需要它了。。。我很乐意接受纠正

我看到了很多的设置涉及,并期待在我看来要么过时或不太曼蒂

具体来说,什么东西看起来过时或“没有得到很好的维护”?你的证据是什么? 如果你只是做一些没有根据的断言,社区就帮不了你

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

你的读数不正确。JSR308支持类型注释,但JSR269不支持可插入类型检查器。您需要第三方工具(如Checker框架)来执行可插入类型检查

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

要启用
/*@Nullable*/


对注释中注释的支持不足。您能指出导致您对注释中的注释提出问题的文本吗?

Hi mernst!我说“看着我”,我有一种感觉,因为我错误的假设,所有这些都不再需要了。如果您确实需要用于可插入类型检查的checker框架,那么一切都是有意义的。但是仅仅通过阅读(对不起,我不能告诉你这些站点,阅读了很多关于这个主题的内容),我假设你可以在一个maven项目的META-INF上删除注释处理器,而不需要任何特殊的框架和javac支持。除了annotation processor代码之外,为什么还需要第三方工具?我的意思是,内置的javac不支持处理器标志和meta inf/处理器机制吗?Java提供了一个注释处理接口(通过
-processor
)来访问包、字段和方法上的声明注释。这样的注释处理器不能检查源代码,也不能检查源代码中的注释。Checker框架是一个注释处理器,为整个源代码提供访问者,因此它可以用于可插入类型检查。(所有这些都与处理器自动发现或Maven调用正交,这对任何注释处理器都是一样的。)谢谢!但我还是有些怀疑。在本例中,源代码中的自定义注释处理得很好。此外,如果它最终是处理器接口下的注释处理器,并且META-INF机制是正交的,那么为什么需要com.google.errorproof.javac和带有注释处理器路径的mvn编译器插件?没问题,这就是堆栈溢出的原因。