类型完全匹配,但Java编译器赢了';t为列表编译<;类型>;? private ResourceAssembler方法ResourceAssember.toResources(…)的声明行看起来像什么?不,我不是,只有一个类两次出现?扩展

类型完全匹配,但Java编译器赢了';t为列表编译<;类型>;? private ResourceAssembler方法ResourceAssember.toResources(…)的声明行看起来像什么?不,我不是,只有一个类两次出现?扩展,java,generics,Java,Generics,类型完全匹配,但Java编译器赢了';t为列表编译<;类型>;? private ResourceAssembler方法ResourceAssember.toResources(…)的声明行看起来像什么?不,我不是,只有一个类两次出现?扩展基本身份引用未知类型。这两种类型都可分配给BasedEntity,但不能保证两者都引用相同的类型。要声明它是相同的,向周围的实体添加一个类型变量并使用它,例如class Main和classResourceAssembler ResourceA

类型完全匹配,但Java编译器赢了';t为列表编译<;类型>;?
private ResourceAssembler方法
ResourceAssember.toResources(…)
的声明行看起来像什么?不,我不是,只有一个类两次出现
?扩展基本身份
引用未知类型。这两种类型都可分配给
BasedEntity
,但不能保证两者都引用相同的类型。要声明它是相同的,向周围的实体添加一个类型变量并使用它,例如
class Main
和class
ResourceAssembler ResourceAssembler
列表库
方法
ResourceAssember.toResources(…)
的声明行是什么样子的?不,我不是,只有一个类同时出现
?扩展基本身份
引用未知类型。这两种类型都可分配给
BasedEntity
,但不能保证两者都引用相同的类型。要声明它是相同的,向周围的实体添加一个类型变量并使用它,例如
class Main
和class
ResourceAssembler ResourceAssembler
列表库
private ResourceAssembler<? extends BasedEntity> resourceAssembler;
List<? extends BasedEntity> bases = userRepository.findAll();
return resourceAssembler.toResources(bases, User.class);  //<-----compile error
Wrong 1st argument type. Found: 'java.util.List<? extends BasedEntity>', required: 'java.util.List<? extends BasedEntity>'
public class ResourceAssembler<T extends BasedEntity> {
    public Resources<Resource<T>> toResources(List<T> list, Class entityClass) {}
}
class Main {

    ResourceAssembler<? extends BasedEntity> resourceAssembler;
    List<? extends BasedEntity> bases;

    void test() {
        resourceAssembler.toResources(bases);
        //         the error is here: ^~~~~
    }

}

class BasedEntity {}

class ResourceAssembler<T extends BasedEntity> {
    void toResources(List<T> list) {}
}