Java如何获得调用当前方法的方法名
public static String getCaller(int depth) {
++depth;
StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
Assert.verify(stackTrace.length >= depth + 1, "栈深错误");
return stackTrace[depth].getMethodName().split("\\$")[0];
}
Thread.currentThread().getStackTrace()[1]是你当前方法执行堆栈
Thread.currentThread().getStackTrace()[2]就是上一级的方法堆栈 以此类推
StackTraceElement[] temp=Thread.currentThread().getStackTrace();
StackTraceElement a=(StackTraceElement)temp[2];
this.logger.info("----from--"+a.getMethodName()+"--method----------to use-refreshcart--------");
a.getMethodName() 这就是调用当前方法的方法名称