// 返回表示此线程的堆栈转储的堆栈跟踪元素数组。
// 如果此线程尚未启动、已启动但尚未被系统安排运行或已终止,则此方法将返回一个零长度数组。
// 如果返回的数组长度不为零,则数组的第一个元素表示堆栈的顶部,这是序列中最近的方法调用。
// 数组的最后一个元素代表堆栈的底部,它是序列中最近的方法调用。
StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
// 角标为2的为最近调用方
StackTraceElement stackTraceElement = stackTrace[2];
String className = stackTraceElement.getClassName();
System.out.println("调用方的类名" + className);
String methodName = stackTraceElement.getMethodName();
System.out.println("调用方的方法名称" + methodName);
String fileName = stackTraceElement.getFileName();
System.out.println("调用否的文件名" + fileName);