我有一个addresses类,在customer类的两个属性中使用,第一个属性是表示客户默认地址的简单对象,另一个属性是客户可以拥有的一组地址。
我需要将postalcode字段发送到另一个类。我想签入集合<>如果有一个填充的postalcode,如果是,发送这个值,否则(如果集合<>中没有填充的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;
}
1条答案
按热度按时间pnwntuvh1#
使用Java8流,您可以
map
把地址转换成它的地址postalCode
,使用filter
删除null
值和使用findFirst
获取第一个非空postalcode。Stream.findFirst
通过返回可选值来处理空流。要获取其值或默认值,请使用Optional.orElse
方法。在代码中: