在 Java 泛型之前,Collection.toArray()
无法知道开发人员期望使用哪种类型的数组(尤其是对于空集合)。据我了解,这是成语背后的主要理由collection.toArray(new E[0])
。
使用泛型,Collection<E>.toArray()
只能返回一个充满实例E
和/或其特化的数组。我想知道为什么返回类型仍然是 asObject[]
而不是E[]
. 在我看来,返回一个E[]
而不是不Object[]
应该破坏现有的代码。
请参阅:Collection.toArray()
,Collection.toArray(T[])
以及相关主题java: (String[])List.toArray() 给出 ClassCastException