是否有一种简单的方法来获取Java中特定类的所有对象实例

目前,我正在研究Java代理以汇编内存统计信息。借助工具API,我可以持有这些类(并对其进行操作)。使用纯Java,我可以估算每个对象使用的资源。到目前为止,一切都很好。

我现在面临的问题是“如何掌握特定类的每个Object实例”。我可以进行字节码操作以获得对象实例的所有权,但是我希望还有另外一个我不知道的API,它可以帮助我完成我的目标而无需进行如此繁琐的干预。最后,应将对性能的影响降到最低。有任何想法吗?

回答:

Eclipse中的调试器可以向您展示一个类的所有实例,因此我查看了Eclipse的源代码。Eclipse使用Java调试线协议,该协议允许您(自Java

6起)查找所请求类的所有实例。如果您想走这条路,请获取Eclipse源代码的副本,然后查看的instances方法org.eclipse.jdi.internal.ReferenceTypeImpl

一种简单的方法是使用Java调试接口。注意该ReferenceType.instances方法。

我仍然没有弄清楚如何使用JDI连接到正在运行的进程以及如何获取的实例ReferenceType。JDK包含几个示例,因此我确定它是可行的。

以上是 是否有一种简单的方法来获取Java中特定类的所有对象实例 的全部内容, 来源链接: utcz.com/qa/415909.html

回到顶部