本帖最后由 游呤人 于 2015-7-16 01:31 编辑  
 
在获得了字节码和构造器之后我们应该获得该类的成员变量了 
Field 提供有关类或接口的单个字段的信息,以及对它的动态访问权限。 
反射的字段可能是一个类(静态)字段或实例字段。  
 
那么如何获取呢? 
 Field:getDeclaredField(String name)| {getField(String name)  只能获得公共成员变量 } 
 Field[]:getDeclaredFields()  |  {  getFields()   只能获得公共成员变量数组 } 
 
 
 
赋值 : void Field.set(Object obj, Object value) //参数obj 表示要赋值的实例, value表示该值 
私有变量不能直接访问,但是可以通过设置父类的 
public void setAccessible(boolean flag)来改变语法检查- public class FieldDome {
 
 -         public static void main(String[] args) throws Exception{
 
 -                 Class clazz = Class.forName("com.refect.Student");
 
 -                 Constructor<Student> con = clazz.getDeclaredConstructor(String.class,
 
 -                                 int.class, int.class, int.class);
 
 -                 Object obj=con.newInstance("张三",90,100,100);
 
 -                 //        Properties
 
 -                 Field name = clazz.getDeclaredField("age");
 
 -                 name.setAccessible(true);
 
 -                 name.set(obj, 13);
 
 -                 System.out.println(obj);
 
 -         }
 
  复制代码 
 
 |   
        
 
    
    
    
     
 
 |