In dem Buch "Thinking in Java" gibt es ein Beispiel, wie man Informationen für eine Bean über Reflection / Introspection erhält.
%Vor%In Zeile 4 des obigen Beispiels wird überprüft, ob PropertyType null ist. Wann und unter welchen Umständen passiert das? Können Sie ein Beispiel geben?
Der Javadoc für die getPropertyType
Methode der Klasse PropertyDescriptor
:
Das Ergebnis kann "null" sein, wenn es sich um eine indizierte Eigenschaft handelt, die dies nicht tut nicht indizierten Zugriff unterstützen.
Indizierte Eigenschaften sind diejenigen, die von einem Array von Werten unterstützt werden. Zusätzlich zu den standardmäßigen JavaBean-Zugriffsmethoden können indizierte Eigenschaften auch Methoden zum Abrufen / Festlegen einzelner Elemente im Array aufweisen, indem ein Index angegeben wird. Die JavaBean kann daher die indizierten Getter und Setter haben:
%Vor%zusätzlich der Standard-Getter und Setter für nicht-indizierten Zugriff:
%Vor% Wenn Sie nach der Javadoc-Beschreibung die nicht indizierten Accessoren weglassen, können Sie einen Rückgabewert von null
für den Eigenschaftentyp des Property-Deskriptors erhalten.
Wenn Sie also einen JavaBean der folgenden Sorte haben, können Sie einen Null-Rückgabewert erhalten:
%Vor% Beachten Sie, dass Sie zwar die indizierten Property-Accessoren allein implementieren können, dies jedoch nicht empfohlen wird, da die Standard-Accessoren zum Lesen und Schreiben von Werten verwendet werden, wenn Sie das getReadMethod
und
Vineet Reynolds
24.08.2011, 06:43
Aus dem JavaDoc :
Gibt null zurück, wenn der Typ eine indizierte Eigenschaft ist, die nicht unterstützt wird nicht indizierter Zugriff.
Ich denke also, wenn der Eigenschaftstyp eine indexierte Eigenschaft (wie ein Array) ist, wird null
zurückgegeben.
Dies gibt null zurück, wenn Sie eine Methode wie int getValue(int index)
haben.
Der folgende Code druckt
%Vor%Die Klasse:
%Vor%Tags und Links java reflection javabeans