數(shù)組和數(shù)組之間的轉(zhuǎn)換代碼
import java.lang.reflect.Array;
import java.util.Date;
public class TestCast {
/**
* @param args
*/
//public static void main(String[] args) {
/** *//**
*
* 一般情況下數(shù)組和數(shù)組是不能直接進行轉(zhuǎn)換的,例如:
* Object[] t1={"1","2"};
* String[] t2=(String[])t1;//這里會出現(xiàn)轉(zhuǎn)換錯誤
*
* 下面提供了一種方式進行轉(zhuǎn)換
*/
//1.0測試一般基礎(chǔ)類
/* Object[] t1={"1","2","3","4","5"};
String[] m1=(String[])TestCast.cast(t1,String.class);
for(int i=0;i System.out.println(m1[i]); //2.0測試復(fù)雜對象 Object[] t2={new Date(1000),new Date(2000)}; Date[] m2=(Date[])TestCast.cast(t2,Date.class); for(int i=0;i System.out.println(m2[i].toString());*/ // } /** *//** * 將數(shù)組array轉(zhuǎn)換成clss代表的類型后返回 * @param array 需要轉(zhuǎn)換的數(shù)組 * @param clss 要轉(zhuǎn)換成的類型 * @return 轉(zhuǎn)換后的數(shù)組 */ public static Object cast(Object array,Class clss){ if(null==clss) throw new IllegalArgumentException("argument clss cannot be null"); if(null==array) throw new IllegalArgumentException("argument array cannot be null"); if(false==array.getClass().isArray()) throw new IllegalArgumentException("argument array must be array"); Object[] src=(Object[])array; Object[] dest=(Object[])Array.newInstance(clss, src.length); System.arraycopy(src, 0, dest, 0, src.length); return dest; } }
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |