如何在Java中获取当前堆栈跟踪,就像在.NET中一样Environment.StackTrace?
顺便说一句,Thread.dumpStack()不是我想要的 - 我想让堆栈追溯,而不是打印出来.
我想知道JVM/javac是否足够聪明
// This line...
string a = foo();
string foo()
{
return bar();
}
string bar()
{
return some-complicated-string computation;
}
Run Code Online (Sandbox Code Playgroud)
成
string a = bar();
Run Code Online (Sandbox Code Playgroud)
或者在发布案例中删除对foo()的不必要调用(因为无法访问的代码):
string a = foo(bar());
// bar is the same
...
string foo(string b)
{
if (debug) do-something-with(b);
}
Run Code Online (Sandbox Code Playgroud)
对于第一个例子我的感觉是肯定的,对于第二个例子我的感觉是"不太确定",但是有人可以给我一些指示/链接来确认吗?