之间有什么区别
List<String> list = new ArrayList();
和
List<String> list = new ArrayList<>();
?
在第一种情况下,IDE突出显示它并说“未选中分配&#34;”,但它们的行为似乎完全相同。
答案 0 :(得分:2)
尚未指定ArrayList中每个条目的类型,仅指定List,因此Unchecked assignment
警告的原因。你应该用两种方式之一明确说明......
List<String> list = new ArrayList<String>();
或者,你现在可以将它(从Java 7开始)缩写为......
List<String> list = new ArrayList<>();
...然后编译器将能够隐式地从List的类型名称中选择类型。
答案 1 :(得分:1)
没有区别,java编译器可以找出类型,但最好添加推断类型参数:
List<String> list = new ArrayList<String>();