我正在尝试在java中使用lambda表达式和流,但我对它很陌生。当我尝试创建一个lambda表达式时,我在IntelliJ中得到了这个错误“lambda转换的目标类型必须是一个接口”
List<Callable<SomeClass>> callList = prgll.stream()
.map(p->(()->{return p.funct();} )) <--- Here I get error
.collect(Collectors.toList());
我做错什么了吗?
3条答案
按热度按时间wribegjk1#
我怀疑这只是Java的类型推断不够聪明。试试看
beq87vna2#
Stream#map()
是一个typed方法,所以你可以显式地指定类型:或更整洁的方法,使用方法引用:
wfauudbj3#
如果你正在使用其他的流畅API,请确保你调用了正确的方法:
错误(捂脸):
右: