编译检查插件框架以强制执行无空 return

Compilation Check Plugin Framework to enforce no null return

有没有Java的框架/编译器插件/静态分析工具

从本质上讲,这将意味着强制执行 Kotlin 模型,默认情况下,除非特别标记,否则任何内容都不能为 null。

请注意,仅查找 @Notnull 注释并仅强制执行这些注释的工具是不够的,不允许空 return 值应该是默认值。或者,该工具可以专注于取消引用可能为 null 的值,并强制它们不能为 null,除非被标记为 null,然后它们可能会要求您进行 null 检查。

显然,您仍然可以将寻求此类解决方案的问题作为相关问题显然 link 放在一起。也很高兴知道是否已经有人问过这个问题,我自己没有找到匹配的现有问题。

Nullness Checker of the Checker Framework 执行此操作。

关于您的第一个要求,Nullness Checker documentation 说:

The most important annotations supported by the Nullness Checker are @NonNull and @Nullable. @NonNull is rarely written, because it is the default.

关于您的第二个要求,您可以使用-AonlyDefs command-line 选项。它的 documentation 表示:

set the -AonlyDefs command-line option to a regular expression that matches class names (not file names) whose definitions should be type-checked.

它匹配 fully-qualified class 个名称,因此您可以指定一个包名称。

除了mernst 接受的答案外,我还找到了ErrorProne 框架的NullAway 插件。 教程:https://www.baeldung.com/java-nullaway 主页:https://github.com/uber/NullAway

在某个时候将不得不尝试两者,到目前为止它们似乎都符合我的需要。