我使用继承遇到不兼容的返回类型的问题.
public interface A { } public interface B extends A { } public interface C { Map<String,A> getMapping(); } public interface D extends C { Map<String,B> getMapping(); }
有没有办法使这项工作?
现在编译器告诉我,我正在尝试在接口D上使用不兼容的返回类型.
解决方法
我建议你使用
interface C { Map<String,? extends A> getMapping(); }
这说“将String映射到A或A的子类型的地图”.这与Map< String,B>兼容.