Java“ lambda转换的目标类型必须是接口”

Mocktheduck:

我正在尝试在Java中使用lambda和流,但我对此很陌生。当我尝试创建lambda表达式时,我在IntelliJ中收到了此错误:“ lambda转换的目标类型必须是接口”

List<Callable<SomeClass>> callList = prgll.stream()
                                          .map(p->(()->{return p.funct();} )) <--- Here I get error
                                          .collect(Collectors.toList());

难道我做错了什么?

路易斯·瓦瑟曼:

我怀疑这只是Java的类型推断不够聪明。尝试

 .map(p -> (Callable<SomeClass>) () -> p.funct())

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

转换接口类型的列表,使用Java 8另一类名单

Java的8 - 类型不匹配:不能从列表<Serializable接口>转换为列表<字符串>

Java函数接口中的Lambda

Sfl4j和Java 8:此表达式的目标类型必须是功能接口

Java Lambda表达式-显式目标类型

Java泛型接口转换

此表达式的目标类型必须是功能接口

接口中的Java转换

Java接口和返回类型

Java运行时转换为通用接口而不会丢失类型信息

在Java中将具体类型列表转换为其接口列表

为什么必须用Java声明接口?

Java类的转换接口

表达式的目标类型必须是功能接口–为什么需要此接口?

在Java中的Lambda表达式内部进行类型转换?

Java-强制转换为接口,然后找出强制类型

Java通用接口返回类型

Java 8 Lambda toMap显示类型强制转换错误

Java Lambda表达式-必须强制转换参数?

此表达式的目标类型必须是Java8中的功能接口

Java-不能将lambda用于自制接口-lambda转换的目标类型必须是接口

此表达式的目标类型必须是自定义接口的功能接口

Java工厂使用泛型和Supplier接口,但仍需要进行类型转换,这是不对的

Java:类型参数必须实现接口

接口类型的Java队列

java接口和参数类型

此表达式的目标类型必须是函数式接口 -Java 8 Functoinal Interface

这个表达式的目标类型必须是java中的函数式接口

使用泛型类型实现 Java 接口类:警告“类型安全:返回类型......需要未经检查的转换才能符合”