【问题标题】:Generics runtime exception泛型运行时异常
【发布时间】:2013-06-20 20:26:09
【问题描述】:

有人可以向我解释为什么这会导致运行时异常吗?在我看来,我正在访问类型变量 B 的数组列表。

class A {}
class B extends A {}
List<B> bL = new ArrayList<B>();
List<A> aL = bL;
aL.add(new A());
B b = bL.get(0); // runtime exception

【问题讨论】:

    标签: java generics runtime-error runtimeexception


    【解决方案1】:

    您不应该能够成功编译您的代码。你应该在这一行得到一个编译器错误:

    List<A> aL = bL;
    

    因为List&lt;Subclass&gt; 不是List&lt;Superclass&gt;。这是不允许的,因为您刚刚尝试过 - 将超类实例插入到子类实例列表中。

    【讨论】:

      猜你喜欢
      • 2012-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多