我有超过100个类文件。当它返回值时,我在一个方法中收到错误消息。例如:
public String name()
{
return("John"); // error message appeared here
}
我的问题是我无法找到这个被调用的地方。
答案 0 :(得分:1)
您可以这样打印调用堆栈:
for (StackTraceElement ste : Thread.currentThread().getStackTrace()) {
System.out.println(ste);
}
请注意,大多数IDE都有快捷方式来查找调用给定方法的位置。
例如在Eclipse中,您将选择您的方法,然后按Ctrl + Shift + G将显示该方法的所有可能的调用者。
您也可以使用调试器并逐步检查。
答案 1 :(得分:0)
你可以试试这个:
StackTraceElement[] ste = Thread.currentThread().getStackTrace()
来自Javadocs:
返回与此ThreadInfo关联的线程的堆栈跟踪。 如果没有为此线程信息请求堆栈跟踪,则此方法将 返回一个零长度数组。如果返回的数组不为零 length然后数组的第一个元素代表顶部 stack,这是序列中最近的方法调用。该 数组的最后一个元素表示堆栈的底部,即 序列中最近的方法调用。