类型完全匹配,但Java编译器无法为List <type>进行编译?

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) {}
}
funnydoing 回答:类型完全匹配,但Java编译器无法为List <type>进行编译?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3149606.html

大家都在问