List<? extends A>就好使了

解决方案 »

  1.   

    参考网上的资料:
    如果要是A的子类不止B一个,还有C,D....,list.add(A),list.add(B),list.add(C),
    最后list在取数据的时候就不知道应该转换成具体哪个类型,“编译器会尽可能的检查可能存在的类型安全问题。对于确定是违反相关原则的地方,会给出编译错误。”
      

  2.   

    这是java泛型中的有界类型。。
    楼主可以参考一下链接:
    http://blog.csdn.net/daniel_h1986/article/details/5708605
      

  3.   

    兄弟,给你发总结了一下,发你看一下

    //  java泛型的通配符的上边界和下边界 限定通配符的上边界:
    //  说明他能存放A或者是A的子类。 限定通配符的下边界:
     List<? extends A> _List1=new ArrayList<B>();
     
    //  说明它能存放的是B或者B的超类.
    //  注意: 限定通配符总是包括自己。
     List<? super B> _List2=new ArrayList<A>();