Mit Spring ReflectionUtils

Ich nicht voll verstehen, die letzten Zeile im folgenden Stück code

 Field init = ReflectionUtils.findField(ABCClass.class, "init");
 ReflectionUtils.makeAccessible(init);
 init.set(null, false);

Was ich Tue auch verstehen, dass seine Einstellung die AbcClass.init=false mit Hilfe der Reflection-API. Was ich nicht verstehe, ist, warum wir haben nicht einen setter wie

set(Object value) //looks logical as we have reference to field , we can simply set the value

sondern wir haben so Etwas wie

set(Object obj,Object value) 

Ging ich durch die api-doc http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Field.html#set(java.lang.Objekt, java.lang.Objekt)
es sagt

Wenn das zugrunde liegende Feld ist statisch, das obj-argument wird ignoriert; es kann
null sein.

Sonst die darunter liegenden Feld ist ein Instanz-Feld. Wenn die angegebene
Objekt-argument null ist, gibt die Methode wirft eine NullPointerException.

Aber in meinem test-Fall ist es nicht das werfen einer null-Zeiger-Ausnahme

Habe ich versucht zu googeln um weitere Beispiel für die Verwendung dieser api nicht finden nützliches Beispiel , können einige mehr Beispiele die mir helfen können, besser zu verstehen.

InformationsquelleAutor Lav | 2013-06-06

Schreibe einen Kommentar