Wie kann der Typ einer Bean-Eigenschaft null sein?

8

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?

    
dertoni 24.08.2011, 06:35
quelle

3 Antworten

2

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

quelle
3

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.

    
Petar Minchev 24.08.2011 06:40
quelle
2

Dies gibt null zurück, wenn Sie eine Methode wie int getValue(int index) haben.

Der folgende Code druckt

%Vor%

Die Klasse:

%Vor%     
daniel kullmann 24.08.2011 07:09
quelle

Tags und Links