数组和数组转化

 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<m1.length;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<m2.length;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;
         }


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值