java - 如果过滤器返回大小为 0 的列表,则抛出异常
问题描述
在以下代码中:
myList.stream()
.filter(item -> someMethod(item))
.map(item -> doSomething(item))
.collect(Collectors.toList());
RuntimeException
如果过滤器的结果是大小为 0 的列表(即没有项目通过过滤器),我该如何抛出?
解决方案
您可以使用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;
}));
推荐阅读
- sql - Django:如何只更新数据库中的一条记录?
- coordinates - 在xarray中交换纬度和经度位置
- regex - 解析 Rest 查询输出
- html - CSS:page-break-inside:避免在表格行中不起作用
- python - 使用 Redis 进行 Django 缓存
- sql - PostgreSQL:如何阅读并行解释分析(行与单线程不匹配)
- regex - 如何使用 cypress 和 RegEx 获取当前 URL 的一部分
- sql - 有没有办法在 CASE - WHEN 在 oracle 中添加语句
- javascript - jQuery:使用多个下拉菜单时获取(1)选定的值
- llvm - 如何在 LLVM IR 中创建字符串