Como estou trabalhando em um servidor com absolutamente nenhum estado não persistente para os usuários, todos os objetos relacionados ao usuário que temos são lançados a cada solicitação.
Consequentemente, frequentemente me vejo fazendo uma inicialização lenta de propriedades de objetos que podem não ser utilizados.
protected EventDispatcher dispatcher = new EventDispatcher();
Torna-se...
protected EventDispatcher<EventMessage> dispatcher;
public EventDispatcher<EventMessage> getEventDispatcher() {
if (dispatcher == null) {
dispatcher = new EventDispatcher<EventMessage>();
}
return dispatcher;
}
Existe alguma razão para isso não poder ser incorporado ao Java?
protected lazy EventDispatcher dispatcher = new EventDispatcher();
Como mencionado abaixo nos comentários, percebo que uma linguagem poderia evoluir teoricamente para incluir quase tudo o que você deseja. Estou procurando uma medida prática da possibilidade. Isso entraria em conflito com outros recursos? A implementação é simples o suficiente para funcionar bem com a JVM como ela existe? E mesmo, é uma boa ideia?
synchronized
palavra - chave funcionaria da mesma forma que se estivesse no método. Eu imagino que haveria alguma acomodação de métodos de construção mais complicados. No meu caso de uso específico , devido à natureza do problema, com cada solicitação como seu próprio mundo, a sincronização é inútil.