Ani*_*ony 3 java stack-trace call-hierarchy
我有三个名为的课程FirstClass,SecondClass and ThirdClass.以下是三个类的来源:
FirstClass.java
public class FirstClass {
public void firstMethod(){
SecondClass secondClass = new SecondClass();
secondClass.secondMethod();
}
public static void main(String[] args) {
FirstClass firstClass = new FirstClass();
firstClass.firstMethod();
}
}
Run Code Online (Sandbox Code Playgroud)
SecondClass.java
public class SecondClass {
public void secondMethod(){
ThirdClass thirdClass = new ThirdClass();
thirdClass.thirdMethod();
}
}
Run Code Online (Sandbox Code Playgroud)
ThirdClass.java
public class ThirdClass {
public void thirdMethod(){
System.out.println("Here i need to print where the call comes from,(call hierarchy) Is it possible?");
}
}
Run Code Online (Sandbox Code Playgroud)
在最后的方法(这里是ThirdClass.thirdMethod())我需要打印方法调用来自哪里(我的意思是调用层次结构).所以我需要写在thirdMethod()该
尝试这样的东西来访问当前线程的堆栈:
Thread.currentThread().getStackTrace();
Run Code Online (Sandbox Code Playgroud)
这将返回一个数组,StackTraceElement然后您可以打印或检查或执行任何操作.
但是,请注意:如果您的方法根据方法的调用者的不同而有所不同(例如,通过分析堆栈并对其做出反应),您可以使用这样的代码为anybode创建一些非常罕见且意外的行为.
| 归档时间: |
|
| 查看次数: |
6192 次 |
| 最近记录: |