有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java泛型类可分配性

我有以下课程:

    public interface ModelObject {
    }
    public interface Resource {
    }
    public interface Transformer <F,T>{
    }
    public interface WrapperFactory {
        Transformer<Resource, Wrap<? extends ModelObject>> createMapper();
    }
    public class Wrap<E extends ModelObject> {

    }

    public class AbstractBaseTransformer<F,T> implements Transformer<F,T> {
    }
    public class ConcreteModel implements ModelObject {

    }
    public class ConcreteTransformer extends AbstractBaseTransformer<Resource, Wrap<ConcreteModel>> {

    }
    public class ConcreteFactory implements WrapperFactory {

        @Override
        public Transformer<Resource, Wrap<? extends ModelObject>> createMapper() {
            return new ConcreteTransformer();
        }
    }

ConcreteFactory没有编译声明ConcreteTransformer与返回的不兼容

Transformer<Resource, Wrap<? extends ModelObject>>

我看不出这里出了什么问题。ConcreteTransformer将第一个参数绑定到资源(与预期相同),同时将第二个参数绑定到:

Wrap<ConcreteModel>

这应该与:

Wrap<? extends ModelObject> 

随着具体模型的实现


共 (0) 个答案