Comme je travaille sur un serveur sans aucun état non persistant pour les utilisateurs, chaque objet lié à l'utilisateur que nous avons est déployé à chaque demande.
Par conséquent, je me retrouve souvent à faire une initialisation paresseuse de propriétés d'objets qui peuvent rester inutilisés.
protected EventDispatcher dispatcher = new EventDispatcher();
Devient...
protected EventDispatcher<EventMessage> dispatcher;
public EventDispatcher<EventMessage> getEventDispatcher() {
if (dispatcher == null) {
dispatcher = new EventDispatcher<EventMessage>();
}
return dispatcher;
}
Y a-t-il une raison pour laquelle cela n'a pas pu être intégré à Java?
protected lazy EventDispatcher dispatcher = new EventDispatcher();
Comme mentionné ci-dessous dans les commentaires, je me rends compte qu'un langage pourrait théoriquement évoluer pour inclure presque tout ce que vous voulez. Je cherche une mesure pratique de possibilité. Serait-ce en conflit avec d'autres fonctionnalités? L'implémentation est-elle assez simple pour bien fonctionner avec la JVM telle qu'elle existe? Et même, est-ce une bonne idée?
synchronized
mot - clé fonctionnerait de la même manière que s'il figurait sur la méthode. J'imagine qu'il y aurait une certaine adaptation à des méthodes de construction plus compliquées. Dans mon cas d'utilisation spécifique , en raison de la nature du problème, avec chaque demande comme son propre monde, la synchronisation est inutile.