-1

我有一个 GWT 应用程序。该client包有许多子包,如Foo1,Foo2等(这些包包含多个其他类),以及普通类,如class1, class2。在其中一个类中client,我定义了一个singleton Init. 现在client(直接在它下面,以及在像Foo1under之类的包中client)下的所有类都共享相同的单例,并且在任何一个中修改它也会反映在其他类中。

但是,当我尝试在server包下的类中使用它时(com.google.gwt.sample.StockWatcher.server,客户端包正在com.google.gwt.sample.StockWatcher.client),该类总是获得未初始化的单例,也就是说,类中对其所做的更改(通过设置器和获取器)client没有反映在那里. 我怀疑这是因为Init已在下定义client并且我试图在不同的包中使用它server,这就是原因。

所以我Init从 中删除了该类client,并将其添加到基础StockWatcher包(com.google.gwt.sample.StockWatcher)中,以便client和下的所有类server都可以使用它。然后 Java 抛出一个错误消息,比如No source code available for type com.google.gwt.sample.StockWatcher.init,你忘了继承一个必需的模块吗?.

所以看起来除了public文件夹和StockWatcher.gwt.xml文件之外StockWatcher,我无法定义其他类。

那么有没有办法在一个包中定义一个单例并在其他包中使用相同的实例呢?

4

1 回答 1

1

奇怪的是,当您在我的计算机上更改单例默认语言环境时,它并没有在我的计算机上更改。它甚至不被我单机上的不同 Java 应用程序共享。

更严重的是,它clientserver包无关,它与代码执行的位置有关(在浏览器中,由 GWT 转换为 JavaScript,与在您的服务器上)

于 2013-02-20T16:59:33.370 回答