天天看点

Field反射修改值

  通过反射获取Field后,可以进一步修改相应的值。

 示例:修改字符串中的y为y_new

1、Bean

public class FieldBean {

	public String name = "yy";
	public String address = "yybeijingyy";
	
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return name + ", " + address; 
	}
           

2、Client

(1)首先得到Bean对象

FieldBean fb = new FieldBean();
           

(2)通过反射获取Field

Field[] fields = fb.getClass().getFields();
           

(3)对Field进行遍历

for(Field field : fields){
			//如果是String类型
			if(field.getType() == String.class){
				String old_value = (String) field.get(fb);
				String new_value = old_value.replace("y", "y_new");
				field.set(fb, new_value);
			}
		}
           

(4)结果如下:

y_newy_new, y_newy_newbeijingy_newy_new