反射,根据数据库的值来将某个字段置为空。
在获取公有字段时,我们只需要使用getField()方法就可以了。
在获取私有字段时,我们需要使用getDeclaredField()方法才可以。
并且在更改私有字段时,我们需要调用setAccessible()方法。
true是代表不检查,false是代表检查。检查的是访问权限。
修改静态常量的时候有局限性,并不能修改基本数据类型,仅能修改封装类
@Data
public class S1 {
private String id;
private String name;
private String school;
}
public static void f1() throws ClassNotFoundException {
S1 s = new S1();
s.setId("1");
s.setName("Mike");
s.setSchool("Harvard");
Class c = S1.class;
Field[] fields = c.getDeclaredFields();
for (Field field : fields){
System.out.println(field.getName());
field.setAccessible(true);
try {
field.set(s,"1");
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
System.out.println(s);
}