当前位置: 首页 > 知识库问答 >
问题:

Java lambda:带有谓词[duplicate]的bug或feature

高琛
2023-03-14

我试图通过首先添加花括号来创建多行谓词,但Eclipse抱怨以下代码:

Stream<String> stringStream = temp.flatMap(x -> Arrays.stream(x));
Stream<String> stream = stringStream.filter(x -> {"a".equals(x.toString());});

它在filter下放置红线后说:“类型stream 中的方法filter(谓词<?super string>)不适用于参数(( x)->{})

共有1个答案

陈鸿才
2023-03-14

如果使用括号,则需要包含return关键字。如果是单个表达式,可以省略括号和return关键字。

 类似资料:
  • 我在应用程序中使用Querydsl来大大改进查询数据库的代码。但是,我有一个来自外部服务的JPA谓词(javax.persistence.criteria.Predicate)。我想混合使用Querydsl和外部谓词创建的查询。例如: 另一个解决方案是将Querydsl谓词转换为JPA谓词: 有可能吗?如果是,我如何做到这一点?如果没有,是否有其他混合谓词的解决方案(比如将两者转换为SQL字符串并

  • 本文向大家介绍Prolog带有副作用的谓词,包括了Prolog带有副作用的谓词的使用技巧和注意事项,需要的朋友参考一下 示例 产生副作用的谓词离开了纯逻辑领域。例如: writeq/1 read/1 format/2 副作用是程序中无法推理的现象。例如,删除文件或在系统终端上输出。

  • 下面的lexer语法片段应该根据类中定义的谓词来标记“自定义名称”: CUSTOM_NAME的正确匹配总是尽可能长的匹配。现在,如果lexer遇到一个自定义名称,比如,那么我希望它对整个字符串,然后用'some:cname'作为参数调用一次谓词。 编辑:这种行为的有趣之处在于,只要将部分匹配传递给谓词,谓词的结果似乎完全被lexer忽略了。这似乎效率很低。

  • 我一直在尝试使用聚合框架按对报告进行计数。尝试1: 这导致聚合框架抛出: 然后更改为使用而不是进行尝试#2: 最后,我在尝试#3中使用了lambda来实现接口: 这一尝试终于奏效了。 问题1:这是Hazelcast的一个bug吗?似乎聚合框架应该支持由或构建的?如果不是,那么应该创建一个新的类型(例如,)来避免这种混淆。 问题2(与问题1相关):使用lambda会导致我创建的索引未被使用。相反,映

  • 我已经安装了cordova-plugin-whitelist并将其配置如下: 任何洞察力都将不胜感激。