黑马程序员技术交流社区
标题:
反射的使用示例
[打印本页]
作者:
池中月
时间:
2015-7-6 11:59
标题:
反射的使用示例
通过java反射机制,可以更加深入的控制程序的运行过程,可以逆向控制程序的执行过程;而这种功能是通过反射对象的构造函数、方法、成员实现的:
示例:
使用反射扩展数组的长度。
代码:
/*
* 通过反射实现扩张数组长度的方法
*/
package unit16;
import java.lang.reflect.*;
public class ReFlexTest2 {
public static void main(String[] args) {
Test test = new Test();
test.print();
test.is = (int[]) addArrayLength(test.is, 10);
test.ss = (String[]) addArrayLength(test.ss, 10);
test.print();
}
public static Object addArrayLength(Object array, int newLength) {
Object newArray = null;
Class componentType = array.getClass().getComponentType();//创建反射对象
newArray = Array.newInstance(componentType, newLength);//使用指定参数创建一个该类对象
System.arraycopy(array, 0, newArray, 0, Array.getLength(array));//通过替换,生成新数组
return newArray;
}
}
class Test {
public int[] is = { 1, 2, 3 };
public String[] ss = { "A", "B", "C" };
public void print() {//遍历数组
for (int index = 0; index < is.length; index++) {
System.out.println("is[" + index + "]=" + is[index]);
}
System.out.println();
for (int index = 0; index < ss.length; index++) {
System.out.println("ss[" + index + "]=" + ss[index]);
}
System.out.println();
}
}
复制代码
作者:
加多宝
时间:
2015-7-6 18:23
初学者还真看不懂
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2