【发布时间】:2012-04-09 09:04:04
【问题描述】:
可能重复:
Is there a simple way of obtaining all object instances of a specific class in Java
在java中,有没有办法获取某个类的所有实例?
【问题讨论】:
-
因为您将实例化它们,只需保留对每个实例的(弱?Java 是否有弱引用?)引用。但我怀疑任何需要这个的设计......
可能重复:
Is there a simple way of obtaining all object instances of a specific class in Java
在java中,有没有办法获取某个类的所有实例?
【问题讨论】:
您可以在实例化您的类 (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
}
}
【讨论】:
Set<MyObject> instances = Collections.newSetFromMap(new WeakHashMap<MyObject, Boolean>());
一般不会。如果您正在使用调试器 API,它可能是可能的(我还没有检查过),但您不应该使用该 other 而不是调试。
如果您的设计需要这样做,则可能值得重新考虑该设计。
【讨论】: