在以下代码中:
myList.stream()
.filter(item -> someMethod(item))
.map(item -> doSomething(item))
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
RuntimeException如果过滤器的结果是大小为 0 的列表(即没有项目通过过滤器),我该如何抛出 a ?
您可以使用collectAndThen:
myList.stream()
.filter(item -> someMethod(item))
.map(item -> doSomething(item))
.collect(Collectors.collectingAndThen(Collectors.toList(), result -> {
if (result.isEmpty()) throw new RuntimeException("Empty!!");
return result;
}));
Run Code Online (Sandbox Code Playgroud)