1. 程式人生 > >java中如何獲得一個方法的呼叫深度?

java中如何獲得一個方法的呼叫深度?

函式:   Thread.currentThread().getStackTrace();

作用:獲得在同一個執行緒,方法呼叫的深度。

案例:

public class DemoTest {

	public static void main(String[] args) {
		test4();
	}

	public static  void test2() {
		StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
		System.out.println("棧長度:"+stackTrace.length);
		for (StackTraceElement stackTraceElement : stackTrace) {
			System.out.println("方法名: "+stackTraceElement.getMethodName()+
				"  類名: "+stackTraceElement.getFileName());
		}
	}

	public static  void test3() {
		test2();
	}

	public static  void test4() {
		test3();

	}
}

執行結果: