我正在尝试理解下面的代码。请帮助我。 在阅读博客时我得到了这个代码.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>
答案 0 :(得分:0)
对于直觉,请考虑如果此赋值有效,则允许您将ClassA
类型的元素(通过AB
引用)插入到实际用于{{1实例。所以这项任务是不允许的。
答案 1 :(得分:0)
除了在其他答案中说过的内容之外,你遇到的一个问题是你缺少一个分号。
您写道:
AB = BC
在行尾没有分号。