反射,根据数据库的值来将某个字段置为空。
在获取公有字段时,我们只需要使用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);
}
本文深入探讨了Java反射机制的应用,特别是在字段访问和修改方面。通过实例演示了如何使用getField()和getDeclaredField()方法获取公有和私有字段,以及如何通过setAccessible()方法修改私有字段的访问权限。此外,还讨论了使用反射修改静态常量的局限性。
3405

被折叠的 条评论
为什么被折叠?



