通过下面这个实例,可以了解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;
}
其实,也只是几个简单的方法,不难。当然是在知道这些方法的前提下不
难。但也正是这一个个简单的东西的累加,形成了差距。要走的路还长……
博客通过实例介绍Java反射(reflection)API的使用,展示如何用Java的Array类实现数组扩展。编写方法返回长度为输入数组两倍且内容复制的数组,输入输出参数均为Object类型,代码包含几个简单方法。
1223

被折叠的 条评论
为什么被折叠?



