[Java]利用反射机制动态加载并创建包含参数的对象

来源:互联网 发布:电魂网络前景 编辑:程序博客网 时间:2024/06/01 07:40

先定义一个A类:

package test;


public class A {
 private int a;
 
 public A(){}
 public A(int a){
  this.a = a;
 }


 public int getA() {
  return a;
 }
 public void setA(int a) {
  this.a = a;
 }

}

 

然后创建一个B类,在B类的main方法中动态加载A类,并生成A类的对象,调用有参数的构造函数:

package test;

import java.lang.reflect.Constructor;

public class B {
 public B(){}
 
 public static void main(String[] args) throws Exception
 {
  int i = 5;

  A tempClass = (A)(Class.forName("test.A").newInstance());

  Class[] parameter = new Class[]{int.class};
  Constructor con = tempClass.getClass().getConstructor(parameter);
  Object[] arg= new Object[] { i };
  A a = (A)con.newInstance(arg); 
  System.out.println(a.getA());
 }
}