Ami*_*nde 5 java generics collections
toArray方法隐藏<E>传递给Collection<E>接口.以下是方法签名.
<T> T[] toArray(T[] a);
Run Code Online (Sandbox Code Playgroud)
因为以下是可能的.并将结果转化为ArrayStoreException
ArrayList<String> string = new ArrayList<String>();
string.add("1");
string.add("2");
Integer intArray[] = new Integer[2];
intArray = string.toArray(intArray);
Run Code Online (Sandbox Code Playgroud)
我想知道为什么会做出这样的决定?为什么在设计API时允许这样的情况?无论如何这个代码导致了RuntimeException?
该toArray方法早于泛型的引入。的原始签名是toArray任意的Object[]。
这是使用泛型接受与泛型之前允许的相同输入的唯一方法。但是,采用任意值的优点T[]是它可以返回与其传递的相同的数组类型。
| 归档时间: |
|
| 查看次数: |
167 次 |
| 最近记录: |