1

私はクラスを持っています

class Foo { 
   private static Foo foo_obj = null;

   public Foo() {
       if (foo_obj == null) {
           foo = this;
       }
   }
}

これが漏れているという警告が表示されます。どうすれば修正できますか。

4

1 に答える 1

0

シングルトン パターンを使用しようとしているようです。しかし、それは奇妙な方法であり、機能しません。Foo() がインスタンス化されるたびに、新しいものを作成するためです。次のようなより伝統的なアプローチを使用しないでください。

class Foo { 
   private static Foo foo_obj = new Foo();
   private Foo() {}
   public static Foo getInstance() { return Foo(); }
}

ウィキペディアには、このパターンの多くのバリエーションがあります。

于 2013-09-15T15:11:16.957 に答える