这两个方法都是用于获取字段
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);