使用多个过滤器的Java Stream搜索列表
发布时间:2020-12-15 01:09:54 所属栏目:Java 来源:网络整理
导读:我有一个Java对象列表(假设getter和setter): Record(String name,String part,String value); 如果列表包含某个名称值和某个部分值,我需要返回一个布尔值. 我让它一次为一个过滤器工作: //assume records are added to this listList 但是我得到错误对于此
我有一个Java对象列表(假设getter和setter):
如果列表包含某个名称值和某个部分值,我需要返回一个布尔值. 我让它一次为一个过滤器工作:
但是我得到错误对于此尝试,无法从Record :: getPart上的静态上下文引用非静态方法:
最佳答案
您尝试做的事情是不可能的,即当您执行map(Record :: getName)时,您有一个Stream< String>其中所有字符串都是记录名称,之后的任何链接方法调用仅基于记录名称.
而只是使用一个过滤器:
或者更好地使用anyMatch
编辑: 如果它可以是一个匹配名称的记录,另一个记录匹配部分? 然后,您可以将所有记录名称和部分收集到一个集合中,如下所示:
然后做:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |