如何在Java虚拟机中查找类的实例?

如何在Java虚拟机中查找类的实例?,java,classloader,virtual-machine,Java,Classloader,Virtual Machine,我想在一个大项目中测试一个类,但是我不能修改项目的任何文件(因此静态公共数组不是这种情况) 除此之外,我只能初始化项目的框架(待测试),但同样没有对对象的引用 我唯一拥有的是,我的测试类和框架运行在同一个Java虚拟机上 因此,我希望从测试类中访问单个类的实例 如何在虚拟机中找到它们?在Java中,您无法访问没有引用的对象。您需要有人更新框架,以允许您直接或通过其他对象访问对象。在Java中,您无法访问未引用的对象。您需要有人更新框架,以允许您直接或通过其他对象访问对象。您可以使用一些aop框架

我想在一个大项目中测试一个类,但是我不能修改项目的任何文件(因此静态公共数组不是这种情况)

除此之外,我只能初始化项目的框架(待测试),但同样没有对对象的引用

我唯一拥有的是,我的测试类和框架运行在同一个Java虚拟机上

因此,我希望从测试类中访问单个类的实例


如何在虚拟机中找到它们?

在Java中,您无法访问没有引用的对象。您需要有人更新框架,以允许您直接或通过其他对象访问对象。

在Java中,您无法访问未引用的对象。您需要有人更新框架,以允许您直接或通过其他对象访问对象。

您可以使用一些aop框架,如spring aop,来跟踪每次创建对象的情况。

您可以使用一些aop框架,如spring aop,每次创建对象时都要进行跟踪。

这里还有几个类似的问题,最好的答案似乎是这个:

这里还有几个类似的问题,最好的答案似乎是这个:

我想应该有一些先进但可能效率不高的技术来帮助他们。因为JVM在运行时知道对象及其类。无论如何,谢谢。您可能可以通过JVM的调试接口破解一些东西,但这绝不是Java语言的一部分。原则上,如果没有对对象的引用,对象甚至可能不存在。这就是自动垃圾收集背后的全部想法。我想应该有一些先进的技术,但可能效率低下。因为JVM在运行时知道对象及其类。无论如何,谢谢。您可能可以通过JVM的调试接口破解一些东西,但这绝不是Java语言的一部分。原则上,如果没有对对象的引用,对象甚至可能不存在。这就是自动垃圾收集背后的全部想法。你知道他们跟踪这些对象的方法吗?不管怎样,我会检查一下的,谢谢。参见:6.2.2。声明方面和6.2.3。从中声明切入点。您将在所检查类(您需要研究的类)的构造函数上声明一个切入点,这样每次调用构造函数时都会调用aspect方法。您知道他们跟踪这些对象的方法吗?不管怎样,我会检查一下的,谢谢。参见:6.2.2。声明方面和6.2.3。从中声明切入点。您将在所检查类(您需要研究的类)的构造函数上声明一个切入点,这样,每次调用构造函数时都会调用aspect方法。