我希望能够像这样使用Stream::FlatMap
public static List<String> duplicate(String s) {
List<String> l = new ArrayList<String>();
l.add(s);
l.add(s);
return l;
}
listOfStrings.stream().flatMap(str -> duplicate(str)).collect(Collectors.toList());
但我得到以下编译器错误
test.java:25:错误:不兼容类型:无法推断类型变量R ListofStrings.Stream().FlatMap(str->duplicate(str)).Collect(Collectors.ToList());
scala> List(1,2,3).flatMap(duplicate(_))
res0: List[Int] = List(1, 1, 2, 2, 3, 3)
为什么这不是Java中flatMap的有效用法?
FlatMap
中的lambda表达式需要返回一个流
,这可以从FlatMap
的参数看出,它的类型是Function<?超级T,?扩展流<?扩展r>>
。
下面的代码可以很好地编译和运行:
listOfStrings.stream()
.flatMap(str -> duplicate(str).stream()) // note the .stream() here
.collect(Collectors.toList());
因为lambda表达式str->duplicate(str).stream()
的类型为function
。
问题内容: 我希望能够像这样使用Stream :: flatMap 但是我得到以下编译器错误 Test.java:25:错误:不兼容的类型:无法推断类型变量R listOfStrings.stream()。flatMap(str-> plicate(str))。collect(Collectors.toList()); (参数不匹配; lambda表达式List中的错误返回类型无法转换为Strea
我对编程很陌生,我已经自学了将近一个月了,有谁能给我解释一下我代码中错误的原因吗?在“Total(moneyConv(moneySum*moneyRate))”中出错。行,表示实际和形式的论点在长度上是不同的。我检查了我所有的参数,我觉得很好。多谢!
问题内容: 注意到今天在我们的代码库中有一行代码,我认为肯定会因语法错误而使构建失败,但是测试通过了,显然它实际上是有效的python(在2.x和3中)。 条件表达式有时不需要空格: 如果LHS是变量,则不起作用: 但是它似乎仍然可以与其他类型的文字一起使用: 这是怎么回事,出于某种原因,它是否有意成为语法的一部分?这个奇怪的怪癖是已知/记录的行为吗? 问题答案: 令牌之间的空白 除逻辑行的开头或
我收到一个错误: /app处的OS错误/ [Errno 63]文件名太长:"/Users/XXX/test app/templates/jinja 2/{ ' items ':[{ '-':'-',' A': 'a ',' B': 'b ',' C: 'c ',' D': 'd'}]} 我想将json_parse方法的结果的<code>json_dict</code>嵌入到<code>视图中。将复
通过一组转换进行筛选和按键分组: 关于如何让它更好的性能,有什么想法吗?谢谢你的帮助!
问题内容: T_PAAMAYIM_NEKUDOTAYIM听起来真的很异国情调,但对我来说绝对是胡说八道。我将其全部追溯到以下代码行: 在构造函数中,我创建一个Config对象。这是课程: 不知道为什么这不起作用/错误是什么意思… 问题答案: T_PAAMAYIM_NEKUDOTAYIM是PHP使用的双冒号范围解析–:: 快速浏览一下您的代码,我认为这一行: 应该 第一种是静态调用方法的方式-如果$