Java reflect.Array利用反射对数组容量扩容
java.lang.reflect.Array利用反射机制来获取数组长度并进行数组容量扩容。代码如下:
public class DoubleArray2 {
public static void main(String args[]) {
int array[] = {
1,
2,
3,
4,
5
};
System.out.println("Original size: " + array.length);
System.out.println("New size: " + ((int[]) doubleArray(array)).length);
System.out.println(((int[]) doubleArray(array))[1]);
}
static Object doubleArray(Object original) {
Object returnValue = null;
Class < ?>type = original.getClass();
if (type.isArray()) {
int length = Array.getLength(original);//获取数组长度 Class < ?>elementType = type.getComponentType();
// 根据数组组件的类型,来扩容
returnValue = Array.newInstance(elementType, length * 2);
System.arraycopy(original, 0, returnValue, 0, length);
}
return returnValue;
}
}
版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。