Java Reflection:通过输入名称来获取给定类的实例?

2022-09-02 21:54:12

是否可以通过将类的名称作为字符串输入来获取类的所有实例?

像这样的东西?

var instances = Reflection.findClass("com.someone.MyClass").getInstances();

任何反馈是值得赞赏的。谢谢。


答案 1

不,没有类似的可用。如果您挂接到调试 API,则可能能够执行此操作,但在“正常”运行时则不然。


答案 2

我不知道在运行时执行此操作的方法,但是,如果您愿意“脱机”执行此操作,则可以执行以下操作:

  1. 获取堆转储
  2. 将堆转储加载到 Eclipse MAT 中
  3. 打开 OQL 窗格,然后输入命令,例如 。运行此查询将返回执行堆转储时内存中的实例。select * from com.someone.MyClass