unsafe.putInt(user, unsafe.objectFieldOffset(age), 20); // 打印20 System.out.println(user.getAge()); } } class User { private int age; public User() { this.age = 10; } public int getAge() { return age; } } 一旦我們通過反射調(diào)用得到字段age,我們就可以使用Unsafe將其值更改為任何其他...
使用Unsafe的對象,只需要調(diào)用objectFieldOffset和staticFieldOffset。結(jié)果就是類的內(nèi)存分配地址。 以下的實例程序可以運行在JDK1.6上。 復制代碼代碼如下: import sun.misc.Unsafe; import java.lang.reflect.Field; public class ObjectLocation { private static int apple = 10; ...