public class CustomerDto {
private Collection<PhoneDto> phones;
//setters
public Optional<Collection<PhoneDto>> getPhones() {
return Optional.ofNullable(phones);
}
}
class PhoneDto {
String number;
String type;
//setters
public Optional<String> getN
umber() {
return Optional.ofNullable(number);
}
public Optional<String> getType() {
return Optional.ofNullable(type);
}
}
У меня CustomerDto содержит список PhoneDto
Необходимо обновить, если тип является домашним, а номер пустым. Установить номер по умолчанию 99999999999 в customerDto
PhoneDto phoneDto = new PhoneDto();
phoneDto.setNumber("");
phoneDto.setType("home");
PhoneDto phoneDto1 = new PhoneDto();
phoneDto1.setNumber("909090000");
phoneDto1.setType("office");
Collection<PhoneDto> list = new ArrayList();
list.add(phoneDto);
list.add(phoneDto1);
CustomerDto customerDto = new CustomerDto();
customerDto.setPhones(list);
// Need to update if type is home and number is empty in customerDto
customerDto.getPhones().ifPresent(custDto -> {
custDto.forEach(ph -> {
if (ph.getType().equals("home") &&
ph.getNumber().filter(String::isEmpty).isPresent()) {
ph.setNumber("99999999999");
}
});
});
На выходе я не являюсь получая обновленное значение "99999999999". все еще получает старое значение.
Случай: номер пустой && тип "home" обновить номер телефона до "99999999999"