【发布时间】:2014-04-08 08:41:48
【问题描述】:
考虑以下代码:
public interface A {};
public class AImpl implements A {};
public interface B {};
public class BImpl implements B {};
public interface Service{
Map<? extends A, List<? extends B>> get();
}
为什么下面Service的实现不能编译?
public class ServiceImpl implements Service {
public Map<AImpl, List<BImpl>> get() {
return null;
}
}
编译器错误:
返回类型与
Service.get()不兼容
但是下面的代码编译:
public interface Service{
List<? extents B> get();
}
public class ServiceImpl implements Service{
public List<BImpl> get(){
return null;
}
}
【问题讨论】:
-
错误说明了什么? (我认为你想在最后一个代码 sn-p 中扩展而不是实现)
-
我假设
extent应该是extends?您还缺少一些>s。请复制/粘贴您在 IDE 中测试过的实际代码。另外,包括您的编译器错误。你不这样做浪费了很多人的时间。 -
*在
Map<? extent A, List<? extent B> get()中的范围......它是extends,先修复它看看。