Como estoy trabajando en un servidor sin ningún estado no persistente para los usuarios, cada objeto relacionado con el usuario que tenemos se implementa en cada solicitud.
En consecuencia, a menudo me encuentro haciendo una inicialización perezosa de las propiedades de los objetos que pueden no utilizarse.
protected EventDispatcher dispatcher = new EventDispatcher();
Se convierte ...
protected EventDispatcher<EventMessage> dispatcher;
public EventDispatcher<EventMessage> getEventDispatcher() {
if (dispatcher == null) {
dispatcher = new EventDispatcher<EventMessage>();
}
return dispatcher;
}
¿Hay alguna razón para que esto no se pueda incorporar a Java?
protected lazy EventDispatcher dispatcher = new EventDispatcher();
Como se menciona a continuación en los comentarios, me doy cuenta de que un lenguaje podría evolucionar teóricamente para incluir casi todo lo que desee. Estoy buscando una medida práctica de posibilidad. ¿Estaría en conflicto con otras características? ¿Es la implementación lo suficientemente simple como para funcionar bien con la JVM tal como existe? E incluso, ¿es una buena idea?
synchronized
palabra clave funcionaría igual que si estuviera en el método. Me imagino que habría algún alojamiento de métodos de construcción más complicados. En mi caso de uso específico , debido a la naturaleza del problema, con cada solicitud como su propio mundo, sincronizado no tiene sentido.