Tief Initialisierung Java Bean-Eigenschaften [geschlossen]
Frage
Haben Sie Java Bean Werte plagen Initialisierung? Nehmen wir zum Beispiel:
([g | s] Etters weggelassen)
public class SomeClass {
private String foo;
private Date bar;
private Baz someObject;
}
(Ja, das ist ein POJO als Bohne verwendet wird eher als ein Java Bean im engeren Sinne)
Im leeren Konstruktor initialisiere Sie diese Mitglieder oder einfach nichts tun? Ebenso würde Baz initialisieren Mitglieder als auch das?
oder lassen Sie sie einfach als null?
Lösung
Es hängt vom Anwendungsfall.
Wenn ich Eigenschaften als Service-Abhängigkeiten, sollten sie initialisiert werden, richtig zu funktionieren (btw, hat Frühling DI praktische Möglichkeit, es zu tun).
Wenn ich Bohne als Teil des Domain-Modell verwenden, ist es in der Regel illegal Zustand ist eine Null-Eigenschaft zu haben. Es kann beim Start nicht initialisiert werden, aber ich Illegal Mühe zu werfen, wenn einige Feld während des Geschäftsbetriebs null ist.
Andere Tipps
Wenn möglich, ich initialisieren Variablen bei der Deklaration, wenn sie initialisiert werden müssen. Diese Initialisierungsanweisungen tatsächlich aufzuwickeln vom Konstruktor aufgerufen wird.
Ich lasse im Allgemeinen sie als null, wenn es kein zwingender Grund, sie zu initialisieren.