【问题标题】:How to fix leaking this in constructor如何修复在构造函数中泄漏这个
【发布时间】:2013-09-10 18:04:42
【问题描述】:

我有课

class Foo { 
   private static Foo foo_obj = null;

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

我收到有关泄漏此问题的警告,我将如何修复它。

【问题讨论】:

    标签: memory-leaks pmd resource-leak


    【解决方案1】:

    您似乎正在尝试使用单例模式。这是一种奇怪的做法,但不起作用。因为每次 Foo() 被实例化时,你都会创建一个新的。为什么不使用更传统的方法,例如:

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

    many variations of this pattern on wikipedia

    【讨论】:

      猜你喜欢
      • 2012-07-24
      • 1970-01-01
      • 2021-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-20
      • 2013-01-12
      相关资源
      最近更新 更多