Утечка в предупреждении конструктора

Я хотел бы избежать (большинство) предупреждений о Netbeans 6.9.1, и у меня есть проблема с'Leaking this in constructor' предупреждение.

Я понимаю проблему, вызывая метод в конструкторе и передаваяthis"опасно, т.к."thisВозможно, не была полностью инициализирована.

Было легко исправить предупреждение в моих одноэлементных классах, потому что конструктор является закрытым и вызывается только из того же класса.

Старый код (упрощенно):

private Singleton() {
  ...
  addWindowFocusListener(this);
}

public static Singleton getInstance() {

  ...
  instance = new Singleton();
  ...
}

Новый код (упрощенно):

private Singleton() {
  ...
}

public static Singleton getInstance() {

  ...
  instance = new Singleton();
  addWindowFocusListener( instance );
  ...
}

Это исправление не работает, если конструктор является общедоступным и может вызываться из других классов. Как можно исправить следующий код:

public class MyClass {

  ...
  List<MyClass> instances = new ArrayList<MyClass>();
  ...

  public MyClass() {
    ...
    instances.add(this);
  }

}

Конечно, мне нужно исправление, которое не требует изменения всех моих кодов с использованием этого класса (например, путем вызова метода init).

Ответы на вопрос(10)

Ваш ответ на вопрос