获取Java堆栈跟踪中涉及的对象

Nag*_*gyI 6 java callstack stack-trace

我可以使用当前的堆栈跟踪来检索,Thread.currentThread().getStackTrace()但是这只给出了调用中涉及的类.是否可以检索调用跟踪中涉及的对象实例?也许某种类型的库允许我从堆中检索对象?

我有一个问题,需要我追溯到一个Spring bean,间接创建了我正在请求堆栈跟踪的对象.

更新 如果在Java中没有内置工具,我正在搜索可以在运行时为我执行此操作的可嵌入库.

And*_*niy 3

这是一个非常有趣的想法,但是不幸的是,你不能,这是不可能的。

UPD:答案是“否”的原因之一是,如果可能的话,那么必须存在对所有创建的对象的引用列表。但在这种情况下,Java GC 根本不起作用。

  • 这个论点不成立:Java 有“WeakReference”来解决这类用例。 (2认同)