[Java]利用反射機制動態加載並創建包含參數的對象

先定義一個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());
 }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章