我有个List<T>,其中T是A的子类,现在我想转成List<A>,应该是隐式转换,但是系统报错,有什么好的方法推荐?不要用循环和强转。

解决方案 »

  1.   

    List<A> a = new ArrayList<A>();
    a.addAll(listT);
      

  2.   

    那你定义泛型的时候可以这样定义List<T extends A>
      

  3.   

    定义list时改下
    List<? extends A> list = new ArrayList<T>();
      

  4.   

    List<T> list = getListT();
    List<? extends A> readOnlyList = list;如果转型以后还准备往里添加元素,那就是一楼说的了