Ich war gerade Java Reflection-API zu erkunden und ich gestoßen folgenden Code-SchnipselJava Reflection Snippet Ausgabe
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);
}
}
Ausgang:
six times seven 43
six times seven 43
42
ich die Dokumentation der Set-Methode gelesen, die besagt, dass es legt Wert des Feldes für das gegebene Objekt. Aber ich bin nicht in der Lage, die Ausgabe des Codes zu verstehen, weil es in allen Fällen 42 drucken sollte.
Kann jemand bitte einen Einblick geben, was im Code passiert?
http://www.dzone.com/snippets/reflection-integer-destroyer –