package com.example.springcloud_mode.fanshe;
import com.example.springcloud_mode.entity.YeChuanJiang;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
/**
* @Auther: 叶川江
* @Date: 2022/4/20 14:38
* @Description: 反射改变对象值
*/
public class Fanse2 {
public static void main(String[] args) throws Exception {
YeChuanJiang entity = new YeChuanJiang();
entity.setName("ye");
entity.setAge(28);
entity.setId(1);
System.out.println("修改之前地址值:"+entity.hashCode());
System.out.println("修改之前对象值:"+entity);
Field[] fields = entity.getClass().getDeclaredFields();
for (Field field : fields) {//遍历对象的属性和值 属性和值一一对应
field.setAccessible(true);//开启对象的属性访问权和修改权
String name = field.getName();//获取本次遍历对象的属性名称
String value = field.get(entity).toString();//获取本次遍历对象属性的值
if ("ye".equals(value) && name.equals("name")){//逻辑是如果属性是name,并且值是"ye",就对本次属性值重新赋值
field.set(entity,"yechuanjiang");
}
System.out.println("属性名称:"+name+",值:"+value);
}
System.out.println("修改之后对象值:"+entity);
System.out.println("修改之后地址值:"+entity.hashCode());
//打印结果
/**
* 属性名称:id,值:1
* 属性名称:name,值:ye
* 属性名称:age,值:28
* YeChuanJiang(id=1, name=yechuanjiang, age=28)
*/
}
}
05-23
1111
12-26
1268
06-18
1万+