2011-12-27 102 views
1

我有class X,在它裏面有一個叫做doStuff()static方法,而且我有幾個其他的類,其中有些方法因爲某些原因調用doStuff()。有沒有辦法在doStuff()中使用打印方法打印從中調用哪些方法和類?如何獲取調用靜態方法的類和方法?

+0

請不要」不要這樣做! (可能除了調試,但即使那裏測試可能會更好。) – 2011-12-27 13:04:21

回答

4

是:new Throwable().getStackTrace()返回StackTraceElement的數組。索引號碼1是您的來電者。

+1

+1:或'Thread.currentThread()。getStackTrace()' – 2011-12-27 12:08:02

+0

謝謝,但我使用的索引是3.索引1給我的名字的A類和doStuff()。 – nyxz 2011-12-27 13:16:22

2
/** 
* <li> 0 dumpThreads 
* <li> 1 getStackTrace 
* <li> 2 getCallingMethodName 
* <li> 3 [calling method] 
* 
* @return 
*/ 
private String getCallingMethodName() { 
    return Thread.currentThread().getStackTrace()[3].getMethodName(); 
} 
1

可以使用獲得致電類 「的類調用:類test.Main」