我试图理解以下代码。

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>>

最佳答案

您误解了错误。

实际的问题是ESubTest不同。

如果创建Test<SubSubTest>的实例(SubSubTest继承SubTest),则您的代码将尝试将SubTest的集合(可以容纳任何派生类)放入List<Vector<SubSubTest>>类型的变量(只能容纳SubSubTest)。

08-04 19:13