Duplicar posibles:
Is there a simple way of obtaining all object instances of a specific class in JavaConseguir todas las instancias de una clase
en Java, ¿hay alguna manera posible conseguir todas las instancias de una determinada clase?
Duplicar posibles:
Is there a simple way of obtaining all object instances of a specific class in JavaConseguir todas las instancias de una clase
en Java, ¿hay alguna manera posible conseguir todas las instancias de una determinada clase?
Puede utilizar un inicializador estático fábrica cuando se instancia la clase (Singleton pattern) y luego se agrega cada instancia generada en el constructor de la fábrica a una lista ...
Algo como esto:
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
}
}
Un conjunto de hash débil podría ser una colección más agradable, ya que limpia tales referencias de forma transparente. 'Establecer
Esto no es una solución viable para mi problema actual ... Quiero obtener instancias de clases de terceros. – barneypitt
No en general. Si está utilizando la API del depurador, es posible (no lo he comprobado) pero no debe usar otro que para la depuración.
Si su diseño lo requiere, probablemente valga la pena reconsiderar ese diseño.
desde estarías instanciando, simplemente mantén una referencia (¿débil? ¿java tiene referencias débiles?) a cada instancia. Pero sospecho que cualquier diseño que requiera esto ... –