数组间代码转换.txt

来自「java开发中经常用到的代码」· 文本 代码 · 共 55 行

TXT
55
字号
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;
         }


}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?