use*_*900 7 java eclipse arrays generics
您无法创建参数化类型的数组,因此Eclipse中的此代码
ArrayList<Integer>[] list = new ArrayList[1];
Run Code Online (Sandbox Code Playgroud)
无法参数化,但Eclipse显示警告
类型安全:类型的表达式
ArrayList[]需要未经检查的转换才能符合ArrayList<Integer>[]
并且还显示建议推断通用类型参数,它在提交时不执行任何操作.
推断通用类型参数在识别出可以进行此替换的所有位置之后,通过参数化类型替换泛型类型的原始类型.
这个建议应该删除还是我遗失了什么?
是的,该建议应该被删除。这里不可能用参数化类型替换原始类型,因为数组创建表达式必须使用可具体化类型作为组件类型。这样做是违法的new ArrayList<Integer>[1]。您只能执行new ArrayList[1]或new ArrayList<?>[1],这两者都会产生警告以便转换为类型ArrayList<Integer>[](第二个将需要显式强制转换,从而产生未经检查的强制转换警告)。
| 归档时间: |
|
| 查看次数: |
120 次 |
| 最近记录: |