转自http://www.blogjava.net/jialing/archive/2006/08/24/JavaReflectionCookbook1.html
1. 得到某个对象的属性
public Object getProperty(Object owner, String fieldName) throws Exception {
//得到该对象的Class
Class ownerClass = owner.getClass();
//通过Class得到类声明的属性
Field field = ownerClass.getField(fieldName);
//通过对象得到该属性的实例,如果这个属性是非公有的,这里会报IllegalAccessException
Object property = field.get(owner);
return property;
}
2. 得到某个类的静态属性
public Object getStaticProperty(String className, String fieldName)
throws Exception {
// 得到该对象的Class
Class ownerClass = Class.forName(className);
// 通过Class得到类声明的属性
Field field = ownerClass.getField(fieldName);
// 这里和上面有些不同,因为该属性是静态的,所以直接从类的Class里取
Object property = field.get(ownerClass);
return property;
}
3. 执行某对象的方法