如何解决如果为空列表则返回错误,如果没有则返回Java 8 lambda
是否有更优雅的方法可以做到这一点?
List<Model1> list1 = this.dao.list();
list1.stream().findFirst().orElseThrow(Exception::new);
List<Model2> list2 = list1.stream().map(this::buildModel2).collect(toList());
理想情况下,我想将第2行和第3行合并为一行,同时保留相同的行为。
解决方法
您可以通过Optional
过滤的!isEmpty()
运行该列表:
List<Model2> list2 = Optional.of(list1).filter(c -> !c.isEmpty())
.orElseThrow(Exception::new).stream().map(this::buildModel2).collect(toList());
——-
实际上,所有三行都可以变成一行:
List<Model2> list2 = Optional.of(dao.list()).filter(c -> !c.isEmpty())
.orElseThrow(Exception::new).stream().map(this::buildModel2).collect(toList());
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。