我的印象是Optional.ofNullable(response.getSubscriber())还可以确定对象响应是否为null,但它不能
有没有更好的方法来检查响应和response.getSubscriber是否存在?
public Subscriber generateSubscriber(SPRGetSubscriberResponse response) {
if (response != null) {
Optional<SPRSubscriber> option = Optional.ofNullable(response.getSubscriber());
if (option.isPresent()) {
Subscriber subscriber = new Subscriber();
//...copy members from response to subscriber
return subscriber;
}
}
return null;
}
答案 0 :(得分:2)
你正在混合条件和Optional
以一种方式来获得所有的笨拙而没有流畅性。要仅使用基本功能,请不要Optional
:
if (response != null && response.getSubscriber != null)
在Groovy中:
response?.subscriber // null-safe navigation to collapse your conditional
使用Java 8的优点:
return Optional.ofNullable(response)
.map(SPRGetSubscriberResponse::getSubscriber)
.map(original -> { /* return the copied version */ })
.orElse(null);