クラス反射メカニズムの簡単な使用

1102 ワード

関連クラス:ClassクラスConstructor構築メソッドMethodメソッドFieldメンバー変数
 
クラス:
 /*  ,  */
 Class clas = Class.forName(classPath);
 /*  , ,  */
 Object obj = clas.newInstance();

構築メソッドクラス:
 /*   */
 Constructor[] cArray = clas.getConstructors();
 /*   */
 Constructor c = clas.getConstructor(paramClassArray);
 /*   */
 Constructor c = clas.getDeclaredConstructor(paramClassArray);
 c.setAccessible(true);
 /*  ,  */
 Object obj = c.newInstance(paramArray);

メソッドクラス:
 /*   */
 Method[] mArray = clas.getMethods();
 /*  、  */
 Method method = clas.getMethod(methodName, paramClassArray);
 /*   */
 Method method = clas.getDeclaredMethod(methodName, paramClassArray);
 method.setAccessible(true);
 /*  、  */
 Object result = method.invoke(obj, paramArray);

メンバー変数クラス:
 /*   */
 Field [] fArray = clas.getFields();
 /*  、  */
 Field f = clas.getField(fieldName);
 /*   */
 Field f = clas.getDeclaredField(fieldName);
 f.setAccessible(true);
 /*   */
 Object val = f.get(obj);
 /*  、  */
 f.set(obj, value);