Da ich auf einem Server arbeite, auf dem Benutzer absolut keinen dauerhaften Status haben, wird jedes benutzerbezogene Objekt, das wir haben, bei jeder Anforderung bereitgestellt.
Infolgedessen mache ich häufig eine verzögerte Initialisierung von Eigenschaften von Objekten, die möglicherweise nicht verwendet werden.
protected EventDispatcher dispatcher = new EventDispatcher();
Wird...
protected EventDispatcher<EventMessage> dispatcher;
public EventDispatcher<EventMessage> getEventDispatcher() {
if (dispatcher == null) {
dispatcher = new EventDispatcher<EventMessage>();
}
return dispatcher;
}
Gibt es einen Grund, warum dies nicht in Java integriert werden konnte?
protected lazy EventDispatcher dispatcher = new EventDispatcher();
Wie unten in den Kommentaren erwähnt, ist mir klar, dass sich eine Sprache theoretisch so entwickeln könnte, dass sie fast alles enthält, was Sie wollen. Ich suche eine praktische Messung der Möglichkeit. Würde dies mit anderen Funktionen in Konflikt stehen? Ist die Implementierung einfach genug, um mit der vorhandenen JVM gut zu funktionieren? Und selbst, ist es eine gute Idee?
synchronized
Schlüsselwort würde genauso funktionieren wie in der Methode. Ich stelle mir vor, dass es einige kompliziertere Bauweisen geben würde. In meinem speziellen Anwendungsfall ist die Synchronisierung aufgrund der Art des Problems bei jeder Anforderung als eigene Welt sinnlos.