Eclipse-为什么建议对Java数组使用泛型建议

时间:2018-12-13 07:05:14

标签: java arrays eclipse generics

You cannot create arrays of parameterized types,因此此代码在Eclipse中

ArrayList<Integer>[] list = new ArrayList[1];

无法参数化,但是Eclipse显示警告

  

类型安全:类型ArrayList[]的表达式需要未经检查的转换才能符合ArrayList<Integer>[]

并且还显示建议Infer Generic Type Arguments,该建议在提交时不起作用。

  

推断通用类型参数在确定所有可能的替换位置后,用参数化类型替换通用类型的原始类型出现。

应该删除该建议还是我错过了什么?

1 个答案:

答案 0 :(得分:1)

是,建议应删除。这里不可能用参数化类型替换原始类型,因为数组创建表达式必须使用可更改类型作为组件类型。进行new ArrayList<Integer>[1]是非法的。您只能执行new ArrayList[1]new ArrayList<?>[1],这两种方法都会产生警告,以便转换为类型ArrayList<Integer>[](第二种方法需要显式强制转换,并产生未选中的强制转换警告)