参考:http://stackoverflow.com/a/10992439
【代码】
public class Test { private String getMethodName() { StackTraceElement[] stacktrace = Thread.currentThread().getStackTrace(); StackTraceElement e = stacktrace[2]; String methodName = e.getMethodName(); return methodName; } public void getXXX() { String methodName = getMethodName(); System.out.println(methodName); } public void getYYY() { String methodName = getMethodName(); System.out.println(methodName); } public static void main(String[] args) {Test test = new Test();test.getXXX();test.getYYY();}}
【运行结果】
getXXXgetYYY
【注意】
代码第5行,stacktrace[0].getMethodName() 是getStackTrace,stacktrace[1].getMethodName() 是getMethodName,stacktrace[2].getMethodName() 才是调用getMethodName 的函数的函数名。
我们人生中最大的懒惰,就是当我们明知自己拥有作出选择的能力,