low level programmer

« 好文推薦 - Java Doodle:... | Main | 好文推薦 - EJB 3.0 Based... »
星期日 六月 01, 2008

在方法內,得到自己方法的名稱

description

取得自己呼叫的method name. chih0812大大的提問, 因為覺得蠻有趣的, 所以記錄下自己的發言.

Reference

如果在方法內,得到自己方法的名稱

Codes

public class TestMyMethod {
 
    public static void main(String[] args) {
        TestMyMethod test = new TestMyMethod();
        test.myMethod();
        test.myMethod2();
    }
 
    // jdk 1.4 & jdk 1.5
    private void myMethod() {
        System.out.println(new Exception().getStackTrace()[0].getMethodName());
    }
    
    // jdk 1.5
    private void myMethod2() {
        String currentMethod = "";
        StackTraceElement[] elmts = Thread.currentThread().getStackTrace();
        for ( int i = 0; i < elmts.length; i++ ) {
            if ( elmts[i].getMethodName().equals("getStackTrace") ) {
                currentMethod = elmts[ i+1 ].getMethodName();
                break;
            }
        }
        System.out.println(currentMethod);
    }
}

迴響:

發表迴響:
  • HTML 語法: 關閉