gpt4 book ai didi

java - 为什么 toArray 的 隐藏了 Collection

转载 作者:搜寻专家 更新时间:2023-10-31 20:29:40 24 4
gpt4 key购买 nike

toArray方法隐藏 <E>传递给 Collection<E>界面。下面是方法签名。

<T> T[] toArray(T[] a);

因为以下是可能的。并将结果转化为ArrayStoreException

ArrayList<String> string = new ArrayList<String>();
string.add("1");
string.add("2");
Integer intArray[] = new Integer[2];
intArray = string.toArray(intArray);

我想知道为什么做出这样的决定?为什么在设计 API 时允许这样的情况?无论如何,此代码导致 RuntimeException

最佳答案

toArray 方法早于泛型的引入。 toArray 的原始签名采用任意 Object[]

这是使用泛型来接受在泛型之前允许的相同输入的唯一方法。然而,采用任意 T[] 的优点是它可以返回与其传递的数组类型相同的数组类型。

关于java - 为什么 toArray 的 <T> 隐藏了 Collection<E> 的 <E>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13106567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com