通用类型分配

时间:2016-02-18 17:56:07

标签: java

我正在尝试理解下面的代码。请帮助我。 在阅读博客时我得到了这个代码.Below是博客网址 http://tutorials.jenkov.com/java-generics/wildcards.html

class A {}  
class B extends A {}

class Run {

    public static void main(String Ars[]) {

        List<A> a = new ArrayList<A>();
        List<B> b = new ArrayList<B>();

        a = b; // Compile time error

    }

}

请告诉我为什么我会收到编译时错误。

Type mismatch: cannot convert from List<B> to List<A>

2 个答案:

答案 0 :(得分:0)

对于直觉,请考虑如果此赋值有效,则允许您将ClassA类型的元素(通过AB引用)插入到实际用于{{1实例。所以这项任务是不允许的。

答案 1 :(得分:0)

除了在其他答案中说过的内容之外,你遇到的一个问题是你缺少一个分号。

您写道:

AB = BC

在行尾没有分号。