A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 池中月 中级黑马   /  2015-7-6 11:59  /  479 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

通过java反射机制,可以更加深入的控制程序的运行过程,可以逆向控制程序的执行过程;而这种功能是通过反射对象的构造函数、方法、成员实现的:
示例:
      使用反射扩展数组的长度。
代码:
  1. /*
  2. * 通过反射实现扩张数组长度的方法
  3. */

  4. package unit16;

  5. import java.lang.reflect.*;

  6. public class ReFlexTest2 {

  7.         public static void main(String[] args) {

  8.                 Test test = new Test();

  9.                 test.print();

  10.                 test.is = (int[]) addArrayLength(test.is, 10);
  11.                 test.ss = (String[]) addArrayLength(test.ss, 10);

  12.                 test.print();

  13.         }

  14.         public static Object addArrayLength(Object array, int newLength) {
  15.                 Object newArray = null;
  16.                 Class componentType = array.getClass().getComponentType();//创建反射对象
  17.                 newArray = Array.newInstance(componentType, newLength);//使用指定参数创建一个该类对象
  18.                 System.arraycopy(array, 0, newArray, 0, Array.getLength(array));//通过替换,生成新数组
  19.                 return newArray;
  20.         }
  21. }

  22. class Test {

  23.         public int[] is = { 1, 2, 3 };

  24.         public String[] ss = { "A", "B", "C" };

  25.         public void print() {//遍历数组

  26.                 for (int index = 0; index < is.length; index++) {
  27.                         System.out.println("is[" + index + "]=" + is[index]);
  28.                 }

  29.                 System.out.println();

  30.                 for (int index = 0; index < ss.length; index++) {
  31.                         System.out.println("ss[" + index + "]=" + ss[index]);
  32.                 }

  33.                 System.out.println();

  34.         }

  35. }
复制代码








1 个回复

倒序浏览
初学者还真看不懂
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马