ProceedingJoinPoint獲取當前方法

2021-09-10 07:12:40 字數 546 閱讀 3956

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...