java通過反射,只需要傳了類名和引數,就可以根據不同引數的構造方法例項化物件
阿新 • • 發佈:2019-02-16
轉載自: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
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。