【发布时间】:2020-04-16 11:50:54
【问题描述】:
我创建了一个 Java 流:
List<Student> getStudentWithSameGrade(List<Student> students, Grade grade) {
return students.stream().filter(s -> s.getGradeId().equals(grade.getGid())).collect(Collectors.toList());
}
以上代码返回满足filter 检查的List<Student>,但我想为不满足此检查的学生/学生列表抛出异常。我试着做这样的事情,
return students.stream().filter(s -> s.getGradeId().equals(grade.getGid())).findAny()
.orElseThrow(() -> new EntityNotFoundException(ENTITY_NOT_FOUND));
但是,上面的代码 sn-p 返回单个学生对象而不是列表。我对Stream 概念比较陌生,因此非常感谢您对此的帮助。
【问题讨论】:
-
不太清楚你想做什么,你能不能用for循环来展示你想要什么行为?
-
从 Stream 中抛出异常的唯一方法是使用 Optional#orElseThrow 方法。
-
@Jason 他已经在使用这个方法了
-
@Jason 但是我如何在同一个语句中使用
Collectors.toList()和orElseThrow()?
标签: java list exception lambda java-stream