web-dev-qa-db-ja.com

クラスのすべてのインスタンスを取得する

可能性のある複製:
Javaで特定のクラスのすべてのオブジェクトインスタンスを取得する簡単な方法はありますか

Javaでは、特定のクラスのすべてのインスタンスを取得する可能な方法はありますか?

21
Shawn Shroyer

クラス( シングルトンパターン )をインスタンス化し、ファクトリコンストラクターで生成された各インスタンスをリストに追加するときに、Factory静的初期化子を使用できます...

このようなもの :

  class MyObject {
    private static List instances = new ArrayList();

    public static MyObject createMyObject() {
    MyObject o = new MyObject();
    instances.add(new Java.lang.ref.WeakReference(o));
    return o;
    }

    public static List getInstances() {
    return instances;
    }

    private MyObject() {
    // Not allowed 
    }
  }
23
aleroot

一般的ではありません。デバッガーAPIを使用している場合は可能です(私はチェックしていません)が、デバッグよりもotherを使用しないでください。

デザインでこれが必要な場合は、おそらくそのデザインを再考する価値があります。

7
Jon Skeet