3

假设我有许多用作库的 GWT 模块,以及一个具有继承所有库模块的入口点的模块。

每个子模块都需要访问SomeClass.

如果我调用GWT.create(SomeClass.class)模块 A 和 B,我会得到相同的实例吗?如果是这样,这是否有保证?

4

1 回答 1

5

No.GWT.create(SomeClass.class)编译为new SomeClass(),除非有某种类型的重新绑定规则 - areplace-withgenerate-with规则将导致 this 改为调用这些规则选择的任何类型的默认构造函数。

这意味着这GWT.create不是提供对单例实例的访问的合适方式。相反,请考虑使用一些 DI 工具,例如 Gin,或通过始终传递相同实例的手动 DI。也可以使用static关键字来保留一个实例,所有编译到同一个应用程序中的代码都可以引用它。

于 2012-09-14T03:10:12.503 回答