我试图理解以下代码。
class Test<E extends SubTest>
{
List<Vector<E>> links;
Test()
{
links = MyStaticClass.aList;
// Where aList is static ArrayList<Vector<SubTest>>;
}
}
将以下
ArrayList
分配给链接列表的结果是错误的。考虑到我用SubTest扩展了E,它不理解作业吗?当我有一个参数T t时;我可以访问t属性,但不能执行上述操作。
List<Vector<T>>
链接是否仍希望获得ArrayList<Vector<SubTest>>
? 最佳答案
您误解了错误。
实际的问题是E
与SubTest
不同。
如果创建Test<SubSubTest>
的实例(SubSubTest
继承SubTest
),则您的代码将尝试将SubTest
的集合(可以容纳任何派生类)放入List<Vector<SubSubTest>>
类型的变量(只能容纳SubSubTest
)。