Поскольку я работаю на сервере с абсолютно отсутствующим непостоянным состоянием для пользователей, каждый объект, связанный с пользователем, развертывается при каждом запросе.
Следовательно, я часто выполняю ленивую инициализацию свойств объектов, которые могут остаться неиспользованными.
protected EventDispatcher dispatcher = new EventDispatcher();
Становится ...
protected EventDispatcher<EventMessage> dispatcher;
public EventDispatcher<EventMessage> getEventDispatcher() {
if (dispatcher == null) {
dispatcher = new EventDispatcher<EventMessage>();
}
return dispatcher;
}
Есть ли какая-то причина, по которой это не может быть встроено в Java?
protected lazy EventDispatcher dispatcher = new EventDispatcher();
Как упомянуто ниже в комментариях, я понимаю, что язык может теоретически развиваться и включать в себя практически все, что вы захотите. Я ищу практическое измерение возможности. Будет ли это противоречить другим функциям? Является ли реализация достаточно простой, чтобы хорошо работать с JVM, как она существует? И даже, это хорошая идея?
synchronized
ключевое слово будет работать так же, как если бы оно было в методе. Я предполагаю, что было бы какое-то приспособление более сложных методов строительства. В моем конкретном случае использования, из-за характера проблемы, для каждого запроса, как своего собственного мира, синхронизация бессмысленна.