初始化列表时未经检查的分配

时间:2016-02-25 22:04:40

标签: java

之间有什么区别
List<String> list = new ArrayList();

List<String> list = new ArrayList<>();

在第一种情况下,IDE突出显示它并说“未选中分配&#34;”,但它们的行为似乎完全相同。

2 个答案:

答案 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>();