方法类: 
- package com.kxg_04;
 
  
- import java.lang.reflect.Field;
 
  
- public class Tool {
 
 -         public static void setProperty(Object obj, String propertyName, Object value)
 
 -                         throws Exception {
 
 -                 // 第一参数需要修改的对象,第二个参数是需要修改对象中的成员变量名称,第三个参数就是需要把这成员变量修改成什么值
 
 -                 // 获取传入对象的字节码文件对象
 
 -                 Class c = obj.getClass();
 
  
-                 // 获取成员变量,防止成员变量是私有修饰,用getDeclaredField()方法
 
 -                 Field f = c.getDeclaredField(propertyName);
 
  
-                 // 跳过访问检查
 
 -                 f.setAccessible(true);
 
  
-                 // 把指定对象的该成员变量设置为指定值
 
 -                 f.set(obj, value);
 
 -         }
 
 - }
 
  复制代码 测试类: 
- package com.kxg_04;
 
  
- public class ToolDemo {
 
 -         public static void main(String[] args) throws Exception {
 
 -                 Person p = new Person();
 
 -                 Tool.setProperty(p, "name", "周星驰");
 
 -                 System.out.println(p);
 
 -         }
 
 - }
 
  
- class Person {
 
 -         private String name;
 
 -         int age;
 
  
-         @Override
 
 -         public String toString() {
 
 -                 return "Person [name=" + name + ", age=" + age + "]";
 
 -         }
 
 - }
 
  复制代码 
 
 
 |   
        
 
    
    
    
     
 
 |