java反射实现动态扩建数组

来源:互联网 发布:企业网站绑定域名 编辑:程序博客网 时间:2024/05/04 18:30

 public static Object getCopy(Object sArr){
        Class c1 = sArr.getClass();
        if(!c1.isArray()){
            return null;
        }
        Class componentType = c1.getComponentType();
        int iLength = Array.getLength(sArr);//import java.lang.reflect.Array;
        int newlength = iLength*11;
        Object newArray =  Array.newInstance(componentType, newlength);
        System.arraycopy(sArr, 0, newArray, 0, iLength);
        return newArray;
    }

    int[] a = {1,2,3,4,5};
    int[] iInt =  (int[])getCopy(a);

    java.lang.reflect.Array中的newInstance方法可以创建一个制定长度和类型的新数组,然后通过arraycopy方法实现数组复制,之所以数组类型为Object是因为Object可以转化为各种数组类型,而不仅仅是int;
原创粉丝点击