获取类的所有实例

2022-09-01 17:23:51

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

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


答案 1

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

答案 2

一般不行。如果您使用的是调试器API,则可能是可能的(我还没有检查),但除了调试之外,您不应该使用它。

如果你的设计需要这个,那么可能值得重新思考这个设计。