小编Chr*_*ett的帖子

使用collect Stream方法时,参数不匹配

以下代码:

names = Arrays.asList("A","B","C").stream();
List<String> namesAsList = names.collect(() -> new ArrayList<String>(),List::add,List::add);
System.out.println("Individual Strings put into a list: " + namesAsList);
Run Code Online (Sandbox Code Playgroud)

编译期间生成以下错误:

列表namesAsList = names.collect(() - > new ArrayList(),List :: add,List :: add); ^(参数不匹配;无效方法引用不兼容类型:ArrayList不能转换为int)其中R,T是类型变量:R extends方法中声明的对象collect(Supplier,BiConsumer,BiConsumer)T扩展在接口Stream 1中声明的Object错误

当我修改代码以删除泛型时,代码将使用未经检查的表达式警告进行编译:

Stream<String> names = Arrays.asList("A","B","C").stream();
List<String> namesAsList = names.collect(() -> new ArrayList(),List::add,List::add);
System.out.println("Individual Strings put into a list: " + namesAsList);
Run Code Online (Sandbox Code Playgroud)

为什么我会收到此错误?我不认为这个问题与int有关.

如果答案可能包括解决问题的方法,我将不胜感激,所以我可以自己学习如何解决这些问题.

java java-8 java-stream

6
推荐指数
2
解决办法
645
查看次数

标签 统计

java ×1

java-8 ×1

java-stream ×1