我有以下代码:
final Optional<List<ServiceAttributeValue>> attributeValueList = Optional.<Product> of(product)
.map(Product::getServiceAttributes)
.map(ServiceAttributeMap::getMap)
.map((v) -> (ServiceAttribute) v.get(attributeV.getAttributeString()))
.map((c) -> (List<ServiceAttributeValue>) c.getValueList());
我是否需要添加检查v是否为空?
答案 0 :(得分:2)
首先,您的代码是错误的。您使用Optional来避免NPE,如果product为null,您的代码将抛出NPE。您应该使用Optional.ofNullable
代替。
Optional.ofNullable(product)
并且答案是否定的,如果ServiceAttributeMap::getMap
返回null