数组和数组之间的转换代码
import java.lang.reflect.Array;
import java.util.Date;
public class TestCast {
/**
* @param args
*/
//public static void main(String[] args) {
/** *//**
*
* 一般情况下数组和数组是不能直接进行转换的,例如:
* Object[] t1={"1","2"};
* String[] t2=(String[])t1;//这里会出现转换错误
*
* 下面提供了一种方式进行转换
*/
//1.0测试一般基础类
/* 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测试复杂对象 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());*/ // } /** *//** * 将数组array转换成clss代表的类型后返回 * @param array 需要转换的数组 * @param clss 要转换成的类型 * @return 转换后的数组 */ 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; } }