私はGWTアプリを持っています。パッケージには、 、 などのclient
多数のサブパッケージ(これらのパッケージには他の複数のクラスが含まれます) と、 、 などの通常のクラスがあります。のこれらのクラスの 1 つで、. 現在、その下のすべてのクラス(その直下、および下のようなパッケージ内) は同じシングルトンを共有し、いずれかでそれを変更すると、他のクラスにも反映されます。Foo1
Foo2
class1
class2
client
singleton
Init
client
Foo1
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
すべてのクラスが使用できるようにしました。しかし、Java はNo source code available for typeのようなエラー メッセージをスローします。必要なモジュールを継承するのを忘れましたか? .client
server
com.google.gwt.sample.StockWatcher.init
public
のフォルダーとStockWatcher.gwt.xml
ファイル以外のように見えますがStockWatcher
、他のクラスを定義することはできません。
あるパッケージでシングルトンを定義し、他のパッケージでも同じインスタンスを使用する方法はありますか?