如何在运行时获取一个 Java 类的所有对象实例呢?
比如 A 已经 new 了 10 个对象,现在通过 A.class 就能直接获取到这 10 个对象。前提是这个类可能是任何一个类,既不是单例,也不一定是由 Spring 管理,也不提供静态方法,有的时候还不能修改其代码,这里给大家介绍一种底层实现的方式,基于 jvmti ,代码用 C++实现。
先引用 maven 依赖
<dependency>
<groupId>io.github.liubsyy</groupId>
<artifactId>FindInstancesOfClass</artifactId>
<version>1.0.3</version>
</dependency>
然后调用 InstancesOfClass.getInstances(Class<?> targetClass)即可获取 Object[]实例对象。