null
分配给 Optional
变量或从返回 Optional
的方法返回。
建议您使用 Optional.empty()
(或 Optional.absent()
用于 Guava)来表示空值。
示例:
Optional<Integer> foo(boolean flag) {
return flag ? Optional.of(42) : null;
}
在应用快速修复后:
Optional<Integer> foo(boolean flag) {
return flag ? Optional.of(42) : Optional.empty();
}
配置检查:
使用 报告 Optional 与 null 的比较 选项还可以报告optional == null
之类的比较。 虽然在极少数情况下(例如延迟初始化的可选字段)这可能是正确的,但可选变量通常不会为 null,并且可能应为 optional.isPresent()
。
仅当项目或模块的语言级别为 8 或更高时才报告此检查。
2017.2 的新功能