1. 程式人生 > >java通過反射,只需要傳了類名和引數,就可以根據不同引數的構造方法例項化物件

java通過反射,只需要傳了類名和引數,就可以根據不同引數的構造方法例項化物件

轉載自:http://www.jianshu.com/p/69ca44916ebf

程式碼塊

@requires_authorization
private Object reflateInstance(String className, Object[] args)throws Exception{
     Class newoneClass = Classs.forName(className);
     Class[] argsClass = new Class[args.length];
     for(int i=0,j=args.length; i<j;i++){
         argsClass[i] = args[i].getClass();
     }
     Constructor cons = newoneClass.getConstructor(argsClass);
     return cons.newInstance(args);
 }

解釋

針對建構函式傳入的引數個數分別進行解釋

  • 無參: 表示Object[] 陣列傳入的是0個引數
  • 1個引數: 表示 Object[] 陣列傳入的是1個引數
  • 2個引數: 表示 Object[] 陣列傳入的是2個引數
  • k個引數: 表示 Object[] 陣列傳入的是k個引數

總結 :故可知這個程式碼塊可以針對建構函式傳入的引數的個數不同(Object[])來分別例項化類物件



作者:hw_zhu
連結:http://www.jianshu.com/p/69ca44916ebf
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。