25

可能重复:
是否有一种简单的方法可以在 Java 中获取特定类的所有对象实例

在java中,有没有可能获取某个类的所有实例的方法?

4

2 回答 2

28

您可以在实例化类(单例模式)时使用工厂静态初始化程序,然后将工厂构造函数中生成的每个实例添加到 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 回答