Pet*_*rey 12
使用某些IDE和maven插件支持的@NotNull注释是一种相当普遍的做法.在Java 8中,您可以编写
@NotNull String text;
@NotNull List<@NotNull String> strings = ...;
Run Code Online (Sandbox Code Playgroud)
这不是语言功能,但如果您需要,它可用.
注意:没有标准的@NotNull注释:(所以支持它的工具允许你配置你想要的那个.我使用IntelliJ附带的那个.它在编辑器中给你警告自动 - 修复并添加null
参数,返回值和变量的运行时检查.
注意:如果字段不能按用法使用,则IntelliJ能够计算出来.
我最近遇到了Checker Framework,它有一个null的检查器.
@Nullable表示包含空值的类型.例如,Boolean类型是可空的:Boolean类型的变量总是具有TRUE,FALSE或null之一.
@NonNull表示不包含空值的类型.boolean类型是非null; boolean类型的变量总是具有值true或false之一.类型@NonNull Boolean也是非null:@NonNull类型的变量Boolean总是具有TRUE或FALSE之一 - 永远不为null.取消引用非null类型的表达式永远不会导致空指针异常.
@PolyNull表示限定符多态性.有关@PolyNull的说明,请参见第19.2节.
@MonotonicNonNull表示可能为null的引用,但如果它变为非null,则它永远不会再次变为null.这适用于延迟初始化字段以及其他用途.读取变量时,其类型被视为@Nullable,但是当赋值变量时,其类型将被视为@NonNull.
我还没有时间尝试一下.