public class StackTraceStudy { public static void main(String[] args) throws Exception { new StackTraceStudy().invoke(); } public void method(){ for(StackTraceElement stackTraceElement:Thread.currentThread().getStackTrace()) System.out.println(stackTraceElement.getClassName()+'.'+stackTraceElement.getMethodName()); } public void invoke() throws Exception { StackTraceStudy stackTraceStudy =new StackTraceStudy(); java.lang.reflect.Method method= stackTraceStudy.getClass().getMethod("method"); method.invoke(stackTraceStudy); } } /**output java.lang.Thread.getStackTrace aop.StackTraceStudy.method sun.reflect.NativeMethodAccessorImpl.invoke0 sun.reflect.NativeMethodAccessorImpl.invoke sun.reflect.DelegatingMethodAccessorImpl.invoke java.lang.reflect.Method.invoke aop.StackTraceStudy.invoke aop.StackTraceStudy.main sun.reflect.NativeMethodAccessorImpl.invoke0 sun.reflect.NativeMethodAccessorImpl.invoke sun.reflect.DelegatingMethodAccessorImpl.invoke java.lang.reflect.Method.invoke com.intellij.rt.execution.application.AppMain.main */
例若有的時候我都是經過stackTrace來獲取調用者的信息,可是這個方法不支持反射,java
要麼把被調用的方法作的更智能點,但這樣更麻煩(也更容易出錯)app
要麼提供一個方法,讓調用者把信息傳進來code