我如何找出哪个类/方法调用了实际方法?

最佳答案

您可以尝试创建一个异常以获取其堆栈跟踪。

Throwable t = new Throwable();
StackTraceElement[] stackTraceElements = t.getStackTrace();

现在stackTraceElement[0]包含当前方法的调用者。

但是要当心(从Throwable.getStackTrace()):

一些虚拟机可能在某些情况下
在这种情况下,忽略一个或多个堆栈
堆栈跟踪中的帧。在里面
极端情况下,
没有堆栈跟踪信息
关于这个可 throw 是允许的
从返回零长度数组
这种方法。一般来说,
此方法返回的数组将
每帧包含一个元素
那将由
printStackTrace。

10-08 14:24