我希望实现一个包含内部接口的接口。我在重写setter方法时遇到了问题。
以下是我的问题草稿:
接口层次结构:
接口层次结构:
public interface A {
public interface B {}
public void setBs(List<B> list);
}
实现:
public class AImpl implements A {
private List<BImpl> listOfBs;
public static class BImpl implements B {}
@Override
public void setBs(... list) { listOfBs = list }
}
< p > setBs(... list)
方法的参数应该是什么类型?List<? extends B>
不能重写超类的方法。
List<B>
,您可以将签名接口更改为List<? extends B>
以使用 B 的实现。 - fantaramalistOfBs
声明为private List<B> listOfBs
?listOfBs.add(new BImpl())
仍然可以正常工作。 - Mick Mnemonic