【发布时间】:2020-11-28 06:35:36
【问题描述】:
我是 Java 8 可选项的新手,我想知道是否有办法将这两个语句合并为一个同时保留可选项?
public List<String> getEmployeeStreetNames(Employee employee){
List<Addresses> addresses = Optional.ofNullable(employee)
.map(Employee::getAddresses)
.orElse(new ArrayList<>());
return addresses.stream()
.map(Address::getStreetName)
.collect(Collectors.toList())
}
非常感谢任何帮助。
【问题讨论】:
-
我要注意的一点是,在这种情况下,我不会使用
Optional.ofNullable,也可能根本不会使用Optional。我只想说“你不能在一个空员工身上调用这个,愚蠢的”然后让 NPE 发生;如果employee.addresses不允许为空(例如,您使用可以为空但不能为空的合理规则),那么您可以简单地在employee.getAddresses().stream()上开始整个业务。 -
@chrslis-cautiouslyoptimistic 我建议您回答您的明智评论,
标签: java optimization java-8 optional simplify