转自:
Java 使用反射(reflect.Array)对数组进行扩容呢?
下文笔者将讲述使用反射对数组进行扩容的方法分享,如下所示:
实现思路:
创建新的数组实例,然后对源数组进行复制操作
例:
package com.java265.other; import java.lang.reflect.Array; public class TestClass { public static void main(String[] args) throws Exception { int[] arr = { 10, 20 }; System.out.println("数组长度:" + arr.length); // 数组扩容 --在原数组的基础上扩容2倍 Object obj = Array.newInstance(arr.getClass().getComponentType(), arr.length * 2); System.arraycopy(arr, 0, obj, 2, 2); System.out.println(Array.getInt(obj, 0)); System.out.println(Array.getInt(obj, 1)); System.out.println(Array.getInt(obj, 2)); System.out.println(Array.getInt(obj, 3)); } } ----运行以上代码,将输出以下信息---- 数组长度:2 0 0 10 20