如何获取JVM内已经存在的某个Class的实例

Original 2016-10-29 16:29:13 808
abstract:已知一个类的全限定名, 如果获取在JVM中已经存在的该类的instance, 而不是再去new一个常规的Java SE标准库的API的话,没有办法达到题主的需求。题主的需要本质上说就跟Ruby的ObjectSpace一样要能够遍历当前JVM内的所有活的对象实例,并对它们做操作。Java的标准库没有提供遍历整个Java堆中的所有活的Java对象实例的方法。通过JVMTI倒是有办法遍历出所有活的Jav

已知一个类的全限定名, 如果获取在JVM中已经存在的该类的instance, 而不是再去new一个

常规的Java SE标准库的API的话,没有办法达到题主的需求。
题主的需要本质上说就跟Ruby的ObjectSpace一样要能够遍历当前JVM内的所有活的对象实例,并对它们做操作。Java的标准库没有提供遍历整个Java堆中的所有活的Java对象实例的方法。
通过JVMTI倒是有办法遍历出所有活的Java对象实例的,但那是一个主要用于支持调试器的API,并不适合普通Java程序自己对自己操作使用。



Release Notes

Popular Entries