本帖最后由 sparic 于 2014-06-20 17:03:04 编辑

解决方案 »

  1.   

     List<String> a = null;
            List<?> bNew = a;
      

  2.   

    泛型的类型要一样的。
    这个是可以的。 String  a = null;
             Object  bNew = a;
      

  3.   

    LIST集合里放的东西必须是一样的,是继承关系也不行
      

  4.   

    List<Object>是List<String>的父类?
    如果你能找到依据,你再这么使用。
    语法教你的只有Object是String的父类,泛型的地方就不适用。
      

  5.   


    明白你的意思,但如果把List<Object>实例化成一个ArrayLIst<Object>的泛型,就没问题,且能运行正常。String a = "a";
    Integer b = 1;
    //        List<?> bNew = a;
            List<Object> t = new ArrayList<Object>();
            t.add(a);
            t.add(b);
            for(Object m : t) {
             System.out.println(m);
            }
    }这个又有什么概念在里面呢? 求各位大师指点!
      

  6.   

    List<Object> 和List<String> 其实是相同的东西,这里的Object 和 String 仅仅是给编译器做编译的时候检查用的。
    这里的List<Object> 和List<String> 并没有什么父子类的关系,仅仅是表示一个用来装Obejct型对像,一个用来装String。
      

  7.   

    这种转换只能在子类与父类之间转换,虽然Object是String的父类,但是List<Object>和List<String>在编译器看来,是两种完全不同的东西,不允许你这样转换。如果一定要这么转换,可以像下面这样。
    public static void main(String[] args) {
    List<String> a = null;
    List<Object> b = convert(a, Object.class);
    }

    @SuppressWarnings("unchecked")
    public static <T> List<T> convert(List<?> list, Class<T> c) {
    return (List<T>)list;
    }