java 反射

来源:互联网 发布:ipad air2必备软件 编辑:程序博客网 时间:2024/05/05 03:41

java 反射代码:

反射一个有无参构造函数的实例:

try {//需要实例化的类的完整路径.String className = "com.xt.test.Test";Class compositeClass = Class.forName(className);//newInstance创建实例, 默认调用无参构造函数.Test test = (Test)compositeClass.newInstance();} catch (Exception e) {e.printStackTrace();}

反射一个有参构造函数的实例:

try {String className = "com.xt.test.Test";Class testClass = Class.forName(className);Constructor ctor = testClass.getDeclaredConstructor(String.class);ctor.setAccessible(true);Test test = (Test) ctor.newInstance("AAA");} catch (Exception e) {e.printStackTrace();}

反射一个有多个参数构造函数的实例:

try {String className = "com.xt.test.Test";Class testClass = Class.forName(className);Class[] pType = new Class[] { int.class, String.class }; Constructor ctor = testClass.getDeclaredConstructor(pType);ctor.setAccessible(true);Object obj = new Object{1, "AAA"};Test test = (Test) ctor.newInstance(obj);} catch (Exception e) {e.printStackTrace();}