You cannot create arrays of parameterized types,因此此代码在Eclipse中
ArrayList<Integer>[] list = new ArrayList[1];
无法参数化,但是Eclipse显示警告
类型安全:类型
ArrayList[]
的表达式需要未经检查的转换才能符合ArrayList<Integer>[]
并且还显示建议Infer Generic Type Arguments,该建议在提交时不起作用。
推断通用类型参数在确定所有可能的替换位置后,用参数化类型替换通用类型的原始类型出现。
应该删除该建议还是我错过了什么?
答案 0 :(得分:1)
是,建议应删除。这里不可能用参数化类型替换原始类型,因为数组创建表达式必须使用可更改类型作为组件类型。进行new ArrayList<Integer>[1]
是非法的。您只能执行new ArrayList[1]
或new ArrayList<?>[1]
,这两种方法都会产生警告,以便转换为类型ArrayList<Integer>[]
(第二种方法需要显式强制转换,并产生未选中的强制转换警告)