Apropos Best Practices für die Behandlung von "Nullen" in Java (insbesondere "List" -Rückgaben), empfiehlt es sich, "Collections.emptyList()" aus GetMethod einer Entitätsklasse zurückzugeben ? oder sollten wir die Entity/Daten-Klassen/Methoden sauber und sauber halten und immer den Wert zurückgeben, den ihr Wert hat (selbst seine Null), und dann diesen Nullwert irgendwo anders im Code behandeln, zum Beispiel;Verwenden von Collections.emptyList() und Nullhandling
Class Reference{
private Reference reference;
@XmlElement(name = "Reference")
public List<Reference> getReference() {
if(reference==null){
return Collections.emptyList();
}
return reference;
}
public void setReference(List<Reference> reference) {
this.reference = reference;
}
}
Oder besser, um diese Null "nach" zu behandeln, verwende ich eine grundlegende Methode Get?
EDIT/WARNING: nur für mein Szenario Ich bemerkte, dass dieser Ansatz meinen Code abstürzt Ich weiß nicht warum, wenn ich später anrufe;
References ref= (References) jaxbUnmarshaller.unmarshal(xmlReader)
Ich erhalte eine nicht unterstützte Ausnahme Betrieb, funktioniert aber ok, wenn ich meine getMethod von collections.emtpyList reinigen. Also Vorsicht, wenn sie mit einem @XmlElement Tag
Danke, alle großen Ratschläge, können wir dieses Null-Handling in Entitätsklasse Ansatz sagen gilt auch für Nicht-Listentypen wie String oder Integer? – Spring
Sie würden Integer anstelle von int nur dann verwenden, wenn Sie ausdrücklich möchten, dass die Variable nullwertfähig ist. Andernfalls ist die Verwendung von int eine bessere Wahl. In Bezug auf String wird Null normalerweise verwendet, um zu bedeuten, dass das Attribut nicht gesetzt ist, und nicht eine leere Zeichenfolge. Anrufer wiederholen jedoch im Allgemeinen keine String-Zeichen. –
nur für mein Szenario dieser Ansatz crasht meinen Code Ich weiß nicht, warum, wenn ich später (Referenzen) aufrufen jaxbUnmarshaller.unmarshal (xmlReader) .Ich bekomme eine nicht unterstützte Operation Ausnahme, und funktioniert, wenn ich meine getMethod aus collections.emtpyList .. – Spring