public <T> T[] toArray(T[] a) {
if (a.length < size)
// Make a new array of a's runtime type, but my contents:
return (T[]) Arrays.copyOf(elementData, size, a.getClass());
System.arraycopy(elementData, 0, a, 0, size);
if (a.length > size)
a[size] = null;
return a;
}(T[]) Arrays.copyOf(elementData, size, a.getClass());
這上面是Object陣列為什么可以用(T[])強轉,不是說陣列不能這樣強轉轉嗎
uj5u.com熱心網友回復:
哪里說過不能強轉了?比如
Object []obj = new Integer[10]; //obj表面是Object[]
System.out.println(obj.getClass());//實際是Integer[]
Integer []t = (Integer[])obj; //這樣強行轉換就沒問題
uj5u.com熱心網友回復:
T[]只是用了個泛型,如果進入時和回傳時的型別是一樣的,為什么不能強轉?你可以把正常的強轉理解成變魔術,進來時先畫了個裝,出去時把臉洗干凈了,臉是可以變的,但人還是那個人!
如果你要把一個大人換一個小孩子出去,導演可不會允許的,也是不現實的!
uj5u.com熱心網友回復:
好的,明白了!謝謝解答uj5u.com熱心網友回復:
懂了,懂了,謝謝uj5u.com熱心網友回復:
借樓主寶地學習了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/77573.html
標籤:Java SE
上一篇:jQueryDOM節點操作總結
