aspectj切面通過proceedingjoinpoint想要獲取當前執行的方法:
錯誤方法:
signature s = pjp.getsignature();
methodsignature ms = (methodsignature)s;
method m = ms.getmethod();
這種方式獲取到的方法是介面的方法而不是具體的實現類的方法,因此是錯誤的。
正確方法:
signature sig = pjp.getsignature();
methodsignature msig = null;
if (!(sig instanceof methodsignature))
msig = (methodsignature) sig;
object target = pjp.gettarget();
method currentmethod = target.getclass().getmethod(msig.getname(), msig.getparametertypes());
獲取呼叫當前方法的方法
thread.currentthread getstacktrace 1 是你當前方法執行堆疊 thread.currentthread getstacktrace 2 就是上一級的方法堆疊 以此類推 stacktraceelement temp thread.currentthread getst...
java獲取當前方法的名稱
string clazz this.getclass getname 獲取當前類的 類名 string method thread.currentthread getstacktrace 1 getmethodname 獲取當前方法 返回乙個陣列 thread.currentthread getst...
獲取呼叫當前方法的類名
第一種常規方式 stacktraceelement stack new throwable getstacktrace for int i 0 i stack.length i view code stacktraceelement stack new throwable getstacktrace...