25

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

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

4

2 に答える 2

28

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

このようなもの :

  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 
    }
  }
于 2012-04-09T09:06:35.310 に答える
9

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

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

于 2012-04-09T09:06:01.887 に答える