Pergunta sobre java, instance, class – Obtendo todas as instâncias de uma classe [duplicada]

19

Duplicata Possível:
Existe uma maneira simples de obter todas as instâncias de objeto de uma classe específica em Java

Em java, existe alguma maneira possível de obter todas as instâncias de uma determinada classe?

já que você os instanciaria, simplesmente mantenha uma referência (fraca? faz o java ter referências fracas?) a cada instância. Mas eu suspeitaria de qualquer design que exigisse isso ... Mitch Wheat

Sua resposta

2   a resposta
19

classe (Padrão singleton) e, em seguida, adicione cada instância gerada no construtor de fábrica a uma lista ...

Algo assim :

<code>  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 
    }
  }
</code>
Esta não é uma solução viável para o meu problema atual ... Eu quero obter instâncias de classes de terceiros. barneypitt
Um conjunto de hash fraco pode ser uma coleção mais agradável, pois limpa essas referências de forma transparente.Set<MyObject> instances = Collections.newSetFromMap(new WeakHashMap<MyObject, Boolean>()); Peter Lawrey
7

pode ser possível (eu não verifiquei), mas você não deve usar issode outros do que para depuração.

Se o seu design exigir isso, provavelmente vale a pena repensar esse design.

Perguntas relacionadas