通过下面这个实例,可以了解reflection的使用。
数组的扩展
写一个方法返回一个长度是输入的数组长度的两倍的数组,内容要复制,要求输入和输出的参数都是Object类型。
这里可能用Java的反射(reflection)API来实现,具体点就是Array类。
public Object expand(Object array){
if (!array.getClass().isArray())
return null;
Class componentType = array.getClass().getComponentType();
int newLength = Array.getLength(array)*2;
Object newArray = Array.newInstance(componentType, newLength);
System.arraycopy(array, 0, newArray, 0, Array.getLength(array));
//System.arraycopy(array, 0, newArray, Array.getLength(array), Array.getLength(array));
return newArray;
}
其实,也只是几个简单的方法,不难。当然是在知道这些方法的前提下不
难。但也正是这一个个简单的东西的累加,形成了差距。要走的路还长……
数组的扩展
写一个方法返回一个长度是输入的数组长度的两倍的数组,内容要复制,要求输入和输出的参数都是Object类型。
这里可能用Java的反射(reflection)API来实现,具体点就是Array类。
public Object expand(Object array){
if (!array.getClass().isArray())
return null;
Class componentType = array.getClass().getComponentType();
int newLength = Array.getLength(array)*2;
Object newArray = Array.newInstance(componentType, newLength);
System.arraycopy(array, 0, newArray, 0, Array.getLength(array));
//System.arraycopy(array, 0, newArray, Array.getLength(array), Array.getLength(array));
return newArray;
}
其实,也只是几个简单的方法,不难。当然是在知道这些方法的前提下不
难。但也正是这一个个简单的东西的累加,形成了差距。要走的路还长……