获取课程的所有实例

Sha*_*yer 21 java class instance

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

在java中,是否有任何可能的方法来获取某个类的所有实例?

ale*_*oot 22

在实例化类(Singleton模式)时可以使用Factory静态初始化程序,然后将工厂构造函数中的每个生成的实例添加到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 
    }
  }
Run Code Online (Sandbox Code Playgroud)

  • 弱散列集可能是一个更好的集合,因为它可以透明地清理此类引用。`Set<MyObject> 实例 = Collections.newSetFromMap(new WeakHashMap<MyObject, Boolean>());` (2认同)
  • 对于我目前的问题,这不是一个可行的解决方案......我想获得第三方类的实例. (2认同)

Jon*_*eet 7

不一般.如果您使用调试器API有可能(我没有检查),但你不应该使用其他比进行调试.

如果您的设计需要这样,那么重新考虑该设计可能是值得的.