【发布时间】:2013-08-27 13:34:33
【问题描述】:
以下语句有什么区别:
List<E>[] x = (List<E>[]) new List[100];
和
List<E>[] x = new List[100];
在我的脚本中指出,前者是创建泛型数组的正确方法(尽管它会导致编译器警告)。但我不太清楚(List<E>[]) 语句的用途。 List<E>[] 甚至不是它自己的类型,编译器只会用(List[]) 替换它,所以你会得到
List<E>[] x = (List[]) new List[100];
从List[] 到List[] 的转换,没有用。那么,为什么首先要输入(List<E>[])?
【问题讨论】:
-
注意语言。
-
抱歉,问题已编辑。不知道接口部分,我只是从脚本中复制出来的,所以我认为它是有效的代码。
-
对我来说确实没用。它只是将警告从“未经检查的转换”转换为“未经检查的转换”。