java基础操作 反射操作实力类
记一次反射操作实体类实现
java中操作class对象有getFields()和getDeclaredFields()
- getFields():获得某个类的所有的公共(public)的字段,包括父类中的字段。
- getDeclaredFields():获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。
直接上代码
- 实体类对象
public class User {
private long id;
private String name;
}
- 过程
User user= new User ();
Class<? extends User > aClass = user.getClass();
for (Field field : aClass.getDeclaredFields()) {
//这里当字段属性为private时,需要先指示反射的对象在使用时应该取消 Java 语言访问检查,俗称是否可以访问
field.setAccessible(true);
//这里就是获取字段名了(例如:id)
String name = field.getName();
//这里就是获取字段值(这里获取到的为null)
Object value = field.get(user);
String name = “demo”;
//这里就可以做出指定字段名的值修改了
field.set(user,name );
}