0
我知道我可以檢索發送給方法的參數,但是如何獲取在該方法中定義的對象?例如,這是我的課:使用AspectJ公開上下文
public class Sample {
public static void sendMessage(String message) {
String x = "string x";
System.out.println(message);
}
public static void main(String[] args) {
sendMessage("my message");
}
}
這是我的方面:
public aspect SampleAspect {
pointcut printMessage(String m) : call(void Sample.sendMessage(..)) && args(m);
before(String m) : printMessage(m) {
System.out.println("Before sending: " + m);
}
after(String m) : printMessage(m) {
System.out.println("After sending: " + m);
}
}
輸出由爭論的,因爲我寫&& args(m)
。 如何從sendMessage獲取另一個字符串x?
謝謝!假設我有一個堆棧,並且必須使用AspectJ打印來控制它的所有元素。每次我彈出一個元素時,我都會將其發送到一個空方法,如下所示:doNothing(stack.pop()),其中doNothing(..)具有空體{}。我這樣做是因爲我想從一個方面訪問元素。有沒有更好的辦法? – Sorin
爲什麼不建議調用stack.pop()?像這樣:before(Stack s):call(* Stack.pop())&& target(s)&& withinCode() –
這聽起來好多了!再次感謝你! – Sorin