如何解决如何获取java.util.Set <Object>的填充字段,或者如果该字段为空,则返回其他内容?
我有一个Addresses类,用于Customer类的两个属性,第一个属性是一个简单的对象,代表客户的默认地址,另一个属性是客户可以拥有的地址的Set 。
>我需要将postalCode字段发送到另一个类。我想在Set 中检查是否有填充的postalCode,如果是,则发送此值,否则(如果Set 中没有填充的postalCode),则应该从默认地址发送postalCode值。这该怎么做?我以前尝试过这种方式:
Optional.ofNullable(Stream.of(product.getCustomer().getAddresses()).forEach
(i -> i.getPostalCode())).orElse(product.getCustomer().getAddressDefault().getPostalCode()))
我的课如下:
public class Customer {
private Addresses addressDefault;
private Set<Addresses> addresses;
}
public class Addresses {
private String postalCode;
private String city;
private String state;
private String country;
}
解决方法
使用Java 8流,您可以使用map
将地址转换为其postalCode
,使用filter
删除null
值,然后使用findFirst
获取第一个非空的postalCode。
Stream.findFirst
通过返回可选内容来处理空流。要获取其值或默认值,请使用Optional.orElse
方法。
在代码中:
String postalCode = customer.addresses.stream()
.map(addresses -> addresses.postalCode)
.filter(Objects::nonNull)
.findFirst()
.orElse(customer.addressDefault.postalCode);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。