Dal momento che sto lavorando su un server senza stato assolutamente non persistente per gli utenti, ogni oggetto relativo all'utente che abbiamo è implementato su ogni richiesta.
Di conseguenza, spesso mi ritrovo a eseguire un'inizializzazione pigra delle proprietà degli oggetti che potrebbero non essere utilizzate.
protected EventDispatcher dispatcher = new EventDispatcher();
Diventa ...
protected EventDispatcher<EventMessage> dispatcher;
public EventDispatcher<EventMessage> getEventDispatcher() {
if (dispatcher == null) {
dispatcher = new EventDispatcher<EventMessage>();
}
return dispatcher;
}
C'è qualche motivo per cui questo non può essere integrato in Java?
protected lazy EventDispatcher dispatcher = new EventDispatcher();
Come menzionato di seguito nei commenti, mi rendo conto che una lingua potrebbe teoricamente evolversi per includere quasi tutto ciò che desideri. Sto cercando una misura pratica della possibilità. Questo conflitto con altre funzionalità? L'implementazione è abbastanza semplice da funzionare bene con la JVM così com'è? E anche, è una buona idea?
synchronized
parola chiave funzionerebbe come se fosse sul metodo. Immagino che ci sarebbe qualche accomodamento di metodi di costruzione più complicati. Nel mio caso d'uso specifico , a causa della natura del problema, con ogni richiesta come il suo mondo, la sincronizzazione è inutile.