谁调用了我(class function)?
java开发中经常用到日志组件,它们打出来的信息比较神奇,居然知道是谁调用了自己,从网上搜到了其原理,其实很简单,代码如下:
StackTraceElement stack[] = (new Throwable()).getStackTrace();
for (int i = 0; i < stack.length; i++) {
StackTraceElement ste = stack[i];
System.out.println(i + "--"+ste.getClassName());
System.out.println(i + "--"+ste.getMethodName());
System.out.println(i + "--"+ste.getFileName());
System.out.println(i + "--"+ste.getLineNumber());
}
for (int i = 0; i < stack.length; i++) {
StackTraceElement ste = stack[i];
System.out.println(i + "--"+ste.getClassName());
System.out.println(i + "--"+ste.getMethodName());
System.out.println(i + "--"+ste.getFileName());
System.out.println(i + "--"+ste.getLineNumber());
}