为什么会有Java泛型编译错误?
“强”和“强调”行出现编译错误: 原因:不存在类型变量L的实例,因此集合符合列表为什么会有Java泛型编译错误?,java,generics,lambda,wildcard,Java,Generics,Lambda,Wildcard,“强”和“强调”行出现编译错误: 原因:不存在类型变量L的实例,因此集合符合列表 CollectionRela.init(MaterialAidUnitDto::getAidUnitId, MaterialAidUnitDto::getAidName, new Function<List<Long>, List<MaterialAidUnitDto>>() { @Override public List<M
CollectionRela.init(MaterialAidUnitDto::getAidUnitId, MaterialAidUnitDto::getAidName, new Function<List<Long>, List<MaterialAidUnitDto>>() {
@Override
public List<MaterialAidUnitDto> apply(List<Long> longs) {
return udcService.queryMaterialUnitByIds(longs);
}
});
final Function<List<Long>, List<MaterialAidUnitDto>> queryMaterialUnitByIds = udcService::queryMaterialUnitByIds;
CollectionRela.init(MaterialAidUnitDto::getAidUnitId, MaterialAidUnitDto::getAidName, queryMaterialUnitByIds);
***CollectionRela.init(MaterialAidUnitDto::getAidUnitId, MaterialAidUnitDto::getAidName, udcService::queryMaterialUnitByIds);***
CollectionRela.init(MaterialAidUnitDto::getAidUnitId,MaterialAidUnitDto::getAidName,新函数(){
@凌驾
公共列表应用(列表长度){
返回udcService.queryMaterialUnitById(long);
}
});
最终函数queryMaterialUnitByIds=udcService::queryMaterialUnitByIds;
CollectionRela.init(MaterialAidUnitDto::getAidUnitId,MaterialAidUnitDto::getAidName,QueryMaterialUnitById);
***CollectionRela.init(MaterialAidUnitDto::getAidUnitId,MaterialAidUnitDto::getAidName,udcService::QueryMaterialUnitById)***
这是方法定义:
public static <C extends Collection<T>, L, R, T> CollectionRela<C, L, R, T> init(Function<T, L> left, Function<T, R> right,
Function<? Extends Collection<L>, C> supplier) {
CollectionRela<C, L, R, T> collectionRela = new CollectionRela<C, L, R, T>(left, right, supplier);
return collectionRela;
}
publicstaticcollectionrela init(函数左、函数右、,
函数getAidUnitId()的返回类型是什么?
?函数getAidUnitId=MaterialAlidUnitdTo::getAidUnitId;它很长。QueryMaterialUnitById(…)
的签名是什么?签名是:List QueryMaterialUnitById(List MaterialUnitId);我注意到您的类型变量周围没有任何约束;这可能是原因。