我有一个 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,我无法定义其他类。
那么有没有办法在一个包中定义一个单例并在其他包中使用相同的实例呢?