龙目toBuilder空检查



我有一个使用Lombok@Builder注释的场景。以前我使用静态内部构建器类,但现在使用Lombok,我删除了它

但我在下面的代码行中看到了null取消引用的强化问题。此外,这是有道理的,因为我之前检查null,但后来使用toBuilder时,我没有检查null。我该如何解决这个强化问题,我应该为";requestCheck";再次使用toBuilder。requestCheck是Foo类型的对象。

public Foo checkLatestMessage(Foo requestCheck){
if (requestCheck != null && requestCheck.isCheckLatestMessage()) { // null check
getLatestMessage(messages);
}
if (someOtherCondition) {
return requestCheck.toBuilder().addMessages(messages).build(); //Null dereference
}
}

以前,当我使用静态内部构建器类而不是Lombok时,我用以下方式编写代码,Lombok没有给出任何强化问题。如何使用Lombok Builder实现同样的功能,这样我就不必进行空检查。

return new Foo.Builder(requestCheck).addMessages(messages).build();

如果requestCheck可能是null,则应正确处理。

public Foo checkLatestMessage(Foo requestCheck){
if (requestCheck != null)  { // null check
if(requestCheck.isCheckLatestMessage()) {
getLatestMessage(messages);
}
if (someOtherCondition) {
return requestCheck.toBuilder().addMessages(messages).build();
}
}
}

或者您可以在requestCheck为空时立即返回。

public Foo checkLatestMessage(Foo requestCheck){
if (requestCheck == null)  { // null check
return null;
}    
if(requestCheck.isCheckLatestMessage()) {
getLatestMessage(messages);
}
if (someOtherCondition) {
return requestCheck.toBuilder().addMessages(messages).build();
}
}

相关内容

  • 没有找到相关文章

最新更新