這兩個方法都是用於獲取字段
getField 只能獲取public的,包括從父類繼承來的字段。
getDeclaredField 能夠獲取本類全部的字段,包括private的,可是不能獲取繼承來的字段。 (注: 這裏只能獲取到private的字段,但並不能訪問該private字段的值,除非加上setAccessible(true))java
//從spring.txt中獲取類名稱和方法名稱
File springConfigFile =
new
File(
"e:\\project\\j2se\\src\\spring.txt"
);
Properties springConfig=
new
Properties();
springConfig.load(
new
FileInputStream(springConfigFile));
String className = (String) springConfig.get(
"class"
);
String methodName = (String) springConfig.get(
"method"
);
//根據類名稱獲取類對象
Class clazz = Class.forName(className);
//根據方法名稱,獲取方法對象
Method m = clazz.getMethod(methodName);
//獲取構造器
Constructor c = clazz.getConstructor();
//根據構造器,實例化出對象
Object service = c.newInstance();
//調用對象的指定方法
m.invoke(service);