这件事把我难住了。我有一堂课如下:
public class SpecialList implements List<MyType> {
// overriden methods
}
现在我有以下方法合同可以在更高的班级中得到尊重:
public class MyClass {
private List<SpecialList> bigList = new ArrayList<SpecialList>();
public void doStuff(List<MyType> list)
{
bigList.add((SpecialList)list); // does not compile - invalid cast
}
}
我真的不确定我在这里做错了什么。我有一个实现List<MyType>
接口的类,但我不能将该类转换为List<MyType>
? 这对我来说没有任何意义。
我搞不清楚了。我该怎么做才能完成这项工作?我想这与泛型协方差有关,但此时我不知道这里出了什么问题。有人可以指出正确的方向吗?谢谢。