例如有個類如下:
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();
}