下面有两个示例在源而不是下游检查或捕获Null返回值。今天,我遇到了一个完美的用例,同时将空检查样板粘贴到委托函数中(它不需要执行任何代码,也不需要做)。
问题:
理想情况下,我想使用Lombok的@NonNull
构造来检查函数的返回值,例如:
@NonNull private String isNullReturnValueCaught(){
}
可悲的是,此用例已被龙目岛拒绝:
以及其他选择,请检查局部变量。
private String isNullReturnValueCaught(){
@NonNull String rslt;
rslt = null;
return rslt;
}
答案 0 :(得分:1)
使用Optional
。它已经存在in Guava since at least version 10,并且Java 7对其周围的API进行了形式化。
使用Optional
的模式是,您总是返回它的一个实例,并且总体原理很简单:
Optional
,因为您可以恢复为默认值,或者Optional
,并且同意如果值不存在,则您的应用程序应该violently blow up。 请提前警告: Optional
不能代替空检查。它们仅用于使您的代码更易于维护,并且在您通常知道< em>恰好当您获得空值时要做的事情。