在以下代码中:
myList.stream()
.filter(item -> someMethod(item))
.map(item -> doSomething(item))
.collect(Collectors.toList());
如果过滤器的结果是大小为0的列表(即没有项目通过过滤器),我如何抛出RuntimeException
?
由于没有直接的方法来检查Java 8流是否为空?,更可取的代码是:
List<SomeObject> output = myList.stream()
.filter(item -> someMethod(item))
.map(item -> doSomething(item))
.collect(Collectors.toList());
if (!myList.isEmpty() && output.isEmpty()) {
throw new RuntimeException("your message");
}
另一种替代方法是使用非匹配,在执行之前进行验证,例如:
if (myList.stream().noneMatch(item -> someMethod(item))) {
throw new RuntimeException("your message");
}
您可以使用CollectingAnd,然后:
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;
}));
问题内容: 我有一个位置数据库。当我尝试将它们转换为坐标以便将它们放置在地图上时,会出现错误。我的地址类型地址列表的大小为零。我研究了这个话题。我所有的清单权限均正确。我的手机已连接到互联网。我已经重启了手机。我知道有一个Google问题,解决方案也无济于事。位置准确。请帮忙。 这是错误消息:android.database.CursorIndexOutOfBoundsException:已请求索
我正在尝试从数据库的某一行获取文本。为此,我做了这个函数 我这样称呼它: 我的桌子看起来像这样: 我得到这个错误: 为什么我会犯这个错误?我做错了什么? 提前感谢。
问题内容: 在MySQL中,是否可以将“总计”字段设置为零(如果它们为NULL)? 这是我所拥有的: 数据输出正常,但NULL字段应为。 如何在MySQL中为NULL返回0? 问题答案: 使用IFNULL: 从文档中: 如果expr1不为NULL,则IFNULL()返回expr1; 否则返回expr2。IFNULL()返回数字或字符串值,具体取决于使用它的上下文。
我目前有一个RESTfulWebService跑步服。我最近添加了一个过滤器,它可以执行一些auth操作,并且可以在happy path的情况下工作。但是,当我需要从这个过滤器中抛出一个错误时,它不会将异常序列化为一个漂亮的json字符串,而是抛出一个500,错误如下: 问题是,我不想在应用程序/八位字节流中写入任何内容。我的服务只使用。这在我的实际类中不是问题,我可以在这些类中指定注释。从资源主
我有一个带有键的HashMap,值是字符串。我想通过以字符串“locationid”开头的键值过滤HashMap,并将键中的值返回到字符串数组列表中。HashMap的填充方式如下: 我需要arraylist中的ORG_Id值。 我找不到可以将值放入字符串列表的位置。编译错误是它不识别values()方法。 更新还尝试将筛选后的Hashmap放入另一个Hashmap中,如下所示: 但得到的编译错误是
我检查了这个问题,在elasticsearch中查询DSL中必须和过滤器有什么区别?并阅读答案。 据我所知,必须和过滤器应该返回相同的结果。我说的对吗?但是当我把过滤查询改为必须时,我收到了更多的结果?我做错了什么? 我比较了过滤器,必须查询并得到不同的结果。