package test;
import java.lang.reflect.Field;
class Employ {
// 私有属性
private String name;
private double id;
private int age;
}
public class FieldDemo {
public static void main(String[] args) throws Exception {
// 获取Employ的类
Class<Employ> clz = Employ.class;
// 实例化Employ的对象
Employ e = clz.newInstance();
// 获取属性name、id、age
Field fname = clz.getDeclaredField("name");
Field fid = clz.getDeclaredField("id");
Field fage = clz.getDeclaredField("age");
// 忽略权限
fname.setAccessible(true);
fid.setAccessible(true);
fage.setAccessible(true);
// 设置属性的值(对象,值)
fname.set(e, "lily");
fid.setDouble(e, 2.0);
fage.setInt(e, 22);
// 获取属性的值,若该属性的类型是引用数据类型则使用Object.get(Object obj)
Object name = fname.get(e);
Object id = fid.getDouble(e);
Object age = fage.getInt(e);
System.err.println("name : " + name + " id : " + id + " age : " + age);
}
}