は簡単な例です:あなたが思っている場合にはJava Generics - パラメータ化はいつ必要ですか?ここで
class World<S extends Sprites, B extends Bodies> {
// Both of these have a problem...
static World world = null; // "World is a raw type. References to generic type
// World<BOD,SPRT> should be parameterized"
static World<S, B> world = null; // "Cannot make a static reference to the non-static type S
// "Cannot make a static reference to the non-static type B
// The following is allowed but looks ugly/fishy to me
static World<?, ?> world = null; //
、私は行くシングルトンパターンを取得しようとしています。課題は、このクラスが別のパッケージGAMEで拡張されているため、このパッケージ(MODEL)にそのGAMEに依存することはできません。したがって、コンストラクタはMODELでなければなりません。したがって、コンストラクタにMODELのこのクラスの静的変数にシングルトンオブジェクトを格納させても問題ありません。
static World<?, ?> world = null;
は本当にあなたの意見では醜いですか?これにはより良い方法がありますか?ありがとう!
Javaにはタイプ消去があります。 'World'クラスをどのように多くインスタンス化するにしても、静的な' world'変数は1つしかありません(ランタイムに関する限り、すべて同じクラスを共有するため)。 –
私は最初に世界をシングルトン/静的にしません。 2つの世界が存在する別のGAMEを書くとどうなりますか?いずれにしても、あなたの 'GAME'パッケージにあるものは、'世界 'を1つしか作成しないことを確認するまでは、私のようです。これで今のところあなたの質問に答えることができ、代わりに質問を避けることができます。 –
良い点...実際に私のGAMEパッケージは、1つしかないことを保証するために従来のシングルトンを実装しています... – pitosalas