我如何找出哪个类/方法调用了实际方法?
最佳答案
您可以尝试创建一个异常以获取其堆栈跟踪。
Throwable t = new Throwable();
StackTraceElement[] stackTraceElements = t.getStackTrace();
现在
stackTraceElement[0]
包含当前方法的调用者。但是要当心(从Throwable.getStackTrace()):
一些虚拟机可能在某些情况下
在这种情况下,忽略一个或多个堆栈
堆栈跟踪中的帧。在里面
极端情况下,
没有堆栈跟踪信息
关于这个可 throw 是允许的
从返回零长度数组
这种方法。一般来说,
此方法返回的数组将
每帧包含一个元素
那将由
printStackTrace。