【发布时间】:2020-11-04 08:46:15
【问题描述】:
我在传递 lambda 方法引用时遇到错误,类型不兼容。 在调用 FUnctional Interface 方法时,代码编译得非常好并替换了具体对象。虽然传递方法引用它抛出类型不兼容。请解开我的误会
public interface ParsingFileFunction {
public <K,T> K getMessage(T inputMessage);
}
public class FileUtility {
public static Messages readMessage(File kingMesaages){
//some process here
return messages; //of Messages type
}
}
public class SomeController{
@Autowired
SomeService someService;
public void parse(File kingMessage) {
//compiler error -- The type FileUtility does not define readMessage(T) that is applicable here
Messages kingdomMessages = someService.getMessage(FileUtility::readMessage,kingMessage);
}
}
@Service
public class SomeService{
public Messages getMessage(ParsingFileFunction parse,File file) {
//this compiles perfectly fine as expected
return parse.getMessage(file);
}
}
【问题讨论】:
标签: java generics lambda compiler-errors