2015-05-18 105 views
3

我有方面:如何獲取方法參數的值?

public aspect TestAspect { 
    pointcut publicMethodExecuted(): execution(public !static * *(..)); 

    int around() : publicMethodExecuted() { 
     //I need parameters values here 
     //to write their to log 

     int original_return_value = proceed(); 
     return original_return_value * 100; 
    } 
} 

如何獲得參數的方法被調用?我需要將它們寫入日誌文件。

我最感興趣的是一個本地的AspectJ - 不用反射。

回答

6

很抱歉,如果我誤解,但這應該把參數

Object[] args = thisJoinPoint.getArgs(); 
+0

不,你的理解完全正確。謝謝。 –

2

你可以用你的thisJoinPoint切面裏訪問連接點。

您可以通過thisJoinPoint.getArgs()訪問您的參數。

此外,您可以使用thisJoinPointStaticPart訪問方法調用的簽名。

E.g.您可以通過thisJoinPointStaticPart.getSignature().getName()訪問方法名稱。

有關更多信息,請使用JoinPointJoinPoint.StaticPart的文檔。

相關問題