java - 为什么它有一个 Java 泛型编译错误?
问题描述
strong 和强调行出现编译错误:原因:不存在类型变量 L 的实例,因此 Collection 符合 List
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);***
这是方法定义:
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;
}
为什么会出现编译错误?
解决方案
推荐阅读
- python - python2.7:如何将 datetime.timedelta 转换为 int?
- angular - 从默认主题更改为自定义主题会从 MatInput、Angular 6 中删除光标
- python - Python opencv 无法打开图像并且没有错误
- java - Flyway 在 Jar 中找不到迁移
- powershell - 为 powershell.exe 正确转义命令(从 CMD.exe 启动命令)
- c# - 如何更改这部分代码?该错误是由于我试图在 C# 4 中使用它而引起的,正如我从 C# 6 中理解的那样
- php - 致命错误:未捕获错误:找不到类 'yii\widgets\ActiveForm' C:\wamp64\www\yii-basic\views\post\index.php
- codenameone - CodenameOne Android 构建失败
- java - 如何使用 org.apache.parquet.hadoop.ParquetWriter 将 NULL 值写入镶木地板?
- r - R中的某些包是否会抵消其他包