有如下說明代碼
class A{}
main()
{
List all=ArrayList();
all.add(new A());
all.add(new A());
A[] a1=new A[2];
a1=(A[])all.toArray();
A[] a2=all.toArray(new A[]{});
}
以上代碼, a1=(A[])all.toArray();總是報ClassCastException錯誤,
而toArray()方法返回的是Object[],我已經強轉了,
A[] a2=all.toArray(new A[]{});卻能順利通過,
請問有人知道為什麼嗎
java不支持對數組進行強轉。
A[] a2 = (A[]) all.toArray(new A[] {});之所以可以是因為,toArray構建的是A【】,雖然返回的是object[].