天天看点

Field.get(null)

1、field.get(null)

       public static void main(String[] args){

Field field=MainTest.class.getDeclaredField("name"); //static 

field.setAccessible(true);

Object o=field.get(null);

System.out.println("o="+o);  //输出string

}

public static String name="string";

1)如果field的name是一个static的变量,field.get(param),param是任意的都可以,返回类中当前静态变量的值。

2)如果是非静态变量,field.get(obj),obj必须是当前类的实例对象,返回实例对象obj的变量值。

2、field.set(null,string)

同上,field是一个静态变量时,会修改当前类中该变量的值为string;

field是非静态变量,则需要field(obj,string),则修改obj这个实例对象中的field的值为string。