需要用到java.lang.reflect包中Array类的一些方法。
最关键的是Array类中的静态方法newInstance,他能构造新数组。在调用它时必需提供两个参数,一个是数组的元素类型,一个是新数组的长度。
public Object arrayGrow(Object o) {
Class cl = o.getClass();
if (!cl.isArray())return null;
Class componentType = cl.getComponentType();
int length = Array.getLength(o);
int newLength = length * 11 / 10 + 10;
Object newArray = Array.newInstance(componentType, newLength);
System.arraycopy(o, 0, newArray, 0, length);
return newArray;
}
使用方法
String[] a = { "aa", "bb", "cc", "dd"};
a = (String[]) arrayGrow(a);
最关键的是Array类中的静态方法newInstance,他能构造新数组。在调用它时必需提供两个参数,一个是数组的元素类型,一个是新数组的长度。
public Object arrayGrow(Object o) {
Class cl = o.getClass();
if (!cl.isArray())return null;
Class componentType = cl.getComponentType();
int length = Array.getLength(o);
int newLength = length * 11 / 10 + 10;
Object newArray = Array.newInstance(componentType, newLength);
System.arraycopy(o, 0, newArray, 0, length);
return newArray;
}
使用方法
String[] a = { "aa", "bb", "cc", "dd"};
a = (String[]) arrayGrow(a);