在 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