由于我在服务器上使用的用户绝对没有非持久状态,因此我们在每个请求中都会推出我们拥有的每个与用户相关的对象。
因此,我经常发现自己对可能未使用的对象的属性进行了延迟初始化。
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
关键字的工作原理与该方法相同。我想将会有一些更复杂的构造方法。在我的特定用例中,由于问题的性质,对于每个请求而言,同步都是没有意义的。