/** * StackTraceElement的用法 */ public class Test { /** * @param args */ public static void main(String[] args) { new TestM().OuterMethod(); } public void methodA(){ methodB(); } public void methodB(){ methodC(); } public void methodC(){ StackTraceElement[] stacks = Thread.currentThread().getStackTrace(); for(StackTraceElement s: stacks){ System.out.println("-------"+s.getMethodName()+" : "+s); } } } class TestM { public void OuterMethod(){ new Test().methodA(); } }
===打印结果===:
-------getStackTrace : java.lang.Thread.getStackTrace(Unknown Source)
-------methodC : org.feinno.icm.cms.Test.methodC(Test.java:24)
-------methodB : org.feinno.icm.cms.Test.methodB(Test.java:20)
-------methodA : org.feinno.icm.cms.Test.methodA(Test.java:16)
-------OuterMethod : org.feinno.icm.cms.TestM.OuterMethod(Test.java:33)
-------main : org.feinno.icm.cms.Test.main(Test.java:11)