jjN*_*ord 10 java inheritance interface
我遇到了使用继承的不兼容返回类型的问题.
public interface A { }
public interface B extends A { }
public interface C {
Map<String, A> getMapping();
}
public interface D extends C {
Map<String, B> getMapping();
}
Run Code Online (Sandbox Code Playgroud)
有没有办法让这项工作?
现在,编译器告诉我,我正在"尝试在接口D上使用不兼容的返回类型".
aio*_*obe 21
我建议你用
interface C {
Map<String, ? extends A> getMapping();
}
Run Code Online (Sandbox Code Playgroud)
这表示"映射String到A或者子类型的地图A".这与之兼容Map<String, B>.