您的位置:首页 > 编程语言 > Java开发

java反射实现动态扩建数组

2013-01-31 16:56 405 查看
 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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: