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
?