web-dev-qa-db-fra.com

Obtention de toutes les instances d'une classe

Duplicata possible:
Existe-t-il un moyen simple d'obtenir toutes les instances d'objet d'une classe spécifique en Java

En Java, existe-t-il un moyen possible d'obtenir toutes les instances d'une certaine classe?

21
Shawn Shroyer

Vous pouvez utiliser un initialiseur statique Factory lorsque vous instanciez votre classe ( modèle Singleton ), puis ajoutez chaque instance générée dans le constructeur d'usine à une liste ...

Quelque chose comme ça :

  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

Pas en général. Si vous utilisez l'API de débogage, cela peut être possible (je n'ai pas vérifié) mais vous ne devriez pas utiliser cela autre que pour le débogage.

Si votre conception l'exige, cela vaut probablement la peine de repenser cette conception.

7
Jon Skeet