Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么会有Java泛型编译错误?_Java_Generics_Lambda_Wildcard - Fatal编程技术网

为什么会有Java泛型编译错误?

为什么会有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

“强”和“强调”行出现编译错误: 原因:不存在类型变量L的实例,因此集合符合列表

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);我注意到您的类型变量周围没有任何约束;这可能是原因。