类的成员变量定义可以通过Class 的getFields()来取得
Class aClass = ...//obtain class object
Field[] methods = aClass.getFields();
如果知道Field的名称,则可以通过getField() 取得对应的Field定义
Class aClass = MyObject.class
Field field = aClass.getField("someField");
对应到类的定义可以如下:
public class MyObject{
public String someField = null;
}
如果找不到对应的Field定义,Java Reflection API 抛出NoSuchFieldException异常。
1. 获取成员变量名称
Field field = ... //obtain field object
String fieldName = field.getName();
2. 获取成员变量类型
Field field = aClass.getField("someField");
Object fieldType = field.getType();
3. 为成员变量赋值或取得成员变量的值
Class aClass = MyObject.class
Field field = aClass.getField("someField");
MyObject objectInstance = new MyObject();
Object value = field.get(objectInstance);
field.set(objetInstance, value);
如果Field为Static类型,则使用null 作为get,set 的首参数。