我只是探索Java反射API和我遇到下面的代碼片斷Java反射片段輸出
public class Main {
public static void main(String[] args) throws IllegalAccessException, NoSuchFieldException{
Field value=Integer.class.getDeclaredField("value");
value.setAccessible(true);
value.set(42, 43);
System.out.printf("six times seven %d%n",6*7);
System.out.printf("six times seven %d%n",42);
System.out.println(42);
}
}
輸出:
six times seven 43
six times seven 43
42
我讀其中規定所述一組方法的文檔,它設置值對於給定對象的字段。但我無法理解代碼的輸出,因爲它應該在所有情況下打印42。
任何人都可以請深入瞭解代碼中發生了什麼嗎?
http://www.dzone.com/snippets/reflection-integer-destroyer – 2013-05-09 17:01:43