例如有个类如下:
class Person{
private static int count;
private String name;
public Person(String _name) {
name = _name;
}
}
1、获取和设置静态变量的值:
try {
Field[] fields= Person.class.getDeclaredFields();
for(Field field:fields) {
if(Modifier.isStatic(field.getModifiers())) {//判断是否静态变量
if("count".equalsIgnoreCase(field.getName())) {
field.setAccessible(true);//需要先设置true
field.set(null, 15);//设置count为15
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
2、获取和设置对象成员的值:
Person person = new Person("ldw");
try {
Field[] fields= Person.class.getDeclaredFields();
for(Field field:fields) {
if("name".equalsIgnoreCase(field.getName())) {
field.setAccessible(true);//需要先设置true
field.set(person, "Dway");//设置name为Dway
String name = (String) field.get(person);//获取name
}
}
} catch (Exception e) {
e.printStackTrace();
}