转自:
下文讲述java反射中获取变量信息的方法分享,如下所示:
获取Field对象
例:
Class clazz = ...//获取Class对象 Field[] methods = clazz.getFields();
getFields()方法将返回一个Field对象数组,
此方法中包含了所有public修饰符修饰的变量信息
如果我们想获取指定变量信息,可采用getField方法获取
Class clazz = MyObject.class Field field = clazz.getField("fieldName");
获取变量名称
当我们获取了Field实例后,我们可以使用getName()方法获取其变量名称,如下所示:
Field field = ... //获取Field对象 String fieldName = field.getName();
获取变量类型
我们可以通过Field.getType()方法来获取变量类型,
此方法将返回(String,int)
Field field = clazz.getField("someField"); Object fieldType = field.getType();
获取或设置(get/set)变量值
当我们取得Field引用后,我们可使用Field.get()或Field.set()方法对变量值进行获取和设置操作
Class aClass = MyObject.class Field field = aClass.getField("fieldName"); MyObject objectInstance = new MyObject(); Object value = field.get(objectInstance); field.set(objetInstance, value);