这个问题让我很困惑。我有一个如下的类:
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>
?这对我来说毫无意义。
我迷失了方向。我应该怎么做才能让它起作用?我想这可能与泛型协变有关,但此时我不知道哪里出了问题。有人能指点一下方向吗?谢谢。
list
的内容添加到bigList
中还是将list
添加到bigList
中? - Arun P JohnybigList.addAll(list);
。 - Arun P JohnyaddAll
在这里不合适。 - Thomaspublic class SpecialList implements List<List<MyType>>
。 - Arun P Johny