創(chuàng)新互聯(lián)建站專(zhuān)業(yè)為企業(yè)提供榮縣網(wǎng)站建設(shè)、榮縣做網(wǎng)站、榮縣網(wǎng)站設(shè)計(jì)、榮縣網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、榮縣企業(yè)網(wǎng)站模板建站服務(wù),10年榮縣做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
第一種方法:會(huì)拋出一個(gè)ClassCastException異常,因?yàn)檫@段代碼返回的是對(duì)象數(shù)組(Object[])類(lèi)型,不能轉(zhuǎn)換成對(duì)應(yīng)的數(shù)組類(lèi)型。因此不提倡使用這種方法
public static Object[] badCopyOf(Object[] a, int newLength) {
? // 創(chuàng)建一個(gè)新的對(duì)象數(shù)組
? Object[] newArray = new Object[newLength];
? // 拷貝數(shù)組
? System.arraycopy(a, 0, newArray, 0, Math.min(a.length, newLength));
? return newArray;
?}
?
第二種方法:不需要聲明為對(duì)象型數(shù)組,整型數(shù)組 int[]可以被轉(zhuǎn)換成Object ,但是不能轉(zhuǎn)換成對(duì)象型數(shù)組
public static Object goodCopyOf(Object a, int newLength) {
? // 獲取類(lèi)對(duì)象
? Class cl = a.getClass();
? // 判斷類(lèi)的是不是一個(gè)數(shù)組對(duì)象
? if (!cl.isArray())
? ?return null;
? // 獲取類(lèi)對(duì)象的類(lèi)型
? Class componentType = cl.getComponentType();
? // 獲取數(shù)組的長(zhǎng)度
? int length = Array.getLength(a);
? Object newArray = Array.newInstance(componentType, newLength);
? // 復(fù)制數(shù)組
? System.arraycopy(a, 0, newArray, 0, Math.min(length, newLength));
? return newArray;
?}