Java JDI 转换为实际类型

Java JDI casting to actual real type

我刚刚开始了解 JDI 以创建自定义调试器。我一直在尝试将引用对象转换为真实对象,这样我就可以在不使用 invoke 的情况下访问它们的字段或方法。我将 jar 从目标 vm 包含到项目中,这样我就可以访问所有真实对象。然后我尝试投射但得到像 com.sun.tools.jdi.ObjectReference cannot be cast to myobject 这样的异常。有什么办法可以做这样的事情,还是必须使用调用?

User user = (User) frame.thisObject();  

这种转换根本不可能,因为您必须将调试器视为对目标程序域对象一无所知的外部进程。
您的情况是一种特殊情况,但调试器通常不包含目标 jar。