有没有更好的方法在 JAVA 8 中进行编码?
if (info1 != null && info1.getId() != null && info1.getPartyNumber()!= null) {
billing.setSenderId(info1.getId());
billing.setSenderNumber(info1.getPartyNumber());
}
if (info2 != null && info2.getId() != null && info2.getPartyNumber()!= null) {
billing.setReceiverId(info2.getId());
billing.setSellerNumber(info2.getPartyNumber());
}
..
..
提前致谢。
注意:我研究了 Optional.ofNullable()
但不确定这是否真的可以帮助进行多次检查?
最佳答案
这是我能想到的最好的办法。我会让你决定它是否更干净:
Optional<Info> oInfo1 = Optional.ofNullable(info1);
oInfo1.map(Info::getId).ifPresent(billing::setSenderId);
oInfo1.map(Info::getPartyNumber).ifPresent(billing::setSenderNumber);
Optional<Info> oInfo2 = Optional.ofNullable(info2);
oInfo2.map(Info::getId).ifPresent(billing::setReceiverId);
oInfo2.map(Info::getPartyNumber).ifPresent(billing::setSellerNumber);
请注意,这与原始版本略有不同,因为即使另一个字段为空,它也可能会设置一个字段。
关于java - 对 NullPointerException、JAVA 8 进行多次检查的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52122679/