数组和数组转化

来源:互联网 发布:java发短信 编辑:程序博客网 时间:2024/04/28 06:06

 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;
         }


}

原创粉丝点击