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 回答