You cannot create arrays of parameterized types
ArrayList<Integer>[] list = new ArrayList[1];
无法参数化,但Eclipse显示警告
类型安全性:类型的表达式 ArrayList[] 需要未经检查的转换以符合 ArrayList<Integer>[]
ArrayList[]
ArrayList<Integer>[]
并提出建议 Infer Generic Type Arguments 提交时不起任何作用。
推断泛型类型参数 在标识了可以进行此替换的所有位置后,将泛型类型的原始类型引用替换为参数化类型。
这个建议应该删除还是我遗漏了什么?
是的,这个建议应该删除。此处不可能将原始类型替换为参数化类型,因为数组创建表达式必须使用可重新定义的类型作为组件类型。这样做是违法的 new ArrayList<Integer>[1] . 你只能这样做 new ArrayList[1] 或 new ArrayList<?>[1] ,两者都将产生警告,以便转换为类型 ArrayList<Integer>[] (第二个将需要显式强制转换,该强制转换将产生未经检查的强制转换警告)。
new ArrayList<Integer>[1]
new ArrayList[1]
new ArrayList<?>[1]