List<String> list = new ArrayList();
List<String> list = new ArrayList<String>();
我只看到前一句会弹出个warning,但是没有发现其他实质的区别,想请教一下这两句话的区别是什么,谢谢!

解决方案 »

  1.   


    除了那一句 warning,没有什么别的区别了。但是就像一楼说的那样,第一句是错误的。warning 告诉你,你的代码不是类型安全的。
      

  2.   

    这个ArrayList里面,每一个node都储存着一个数据,默认值是Object型,你可以用第一个语句来创建list,出现warning是因为这里需要你更改这个默认类型,第二句就是把list中node储存的类型改成String。
    有一个比较明显的区别,那就是在你想返回list中储存的数值是,第一个返回的是Object类型,而第二个是String类型。
      

  3.   

    谁告诉你第一个返回的是object的?
      

  4.   

    new ArrayList(),默认类型为Object;List<String>表示实现该接口List的类ArrayList也应该为<String>类型,否则会出现类型不一致的错误!
      

  5.   

         List<String> list = new ArrayList();后面new的对象应该也是String类型的。默认的Object类型,当把new ArrayList()赋给list后就变成String类型了。 
        所以两句返回的都是String类型!
        两种写法都可以,只是第一种不够规范而已。
      

  6.   

    List<String> list = new ArrayList<String>();正确规范~
      

  7.   

    就是声明list中到底是装什么类型的数据String,这样一旦你向list中放入的不是String类型,编译就会报错,而不是等到运行时才会报错。