12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import java.util.*;
- import org.aspectj.lang.annotation.*;
- import org.aspectj.lang.*;
-
- @Aspect
- public class MultipleArgs {
-
-
- @Around("call(* callone(..)) && !within((MultipleArgs)) && args(a,b,c)")
- public void a1(ProceedingJoinPoint pjp,int a,String b,List c) {
- System.err.println("advice running");
- pjp.proceed(new Object[]{a,b,c});
- }
-
- @Around("call(* calltwo(..)) && !within((MultipleArgs)) && args(a,b,c)")
- public void a2(ProceedingJoinPoint pjp,String b,List c,int a) {
- System.err.println("advice running");
- pjp.proceed(new Object[]{a,b,c});
- }
-
- @Around("call(* callone(..)) && !within((MultipleArgs)) && args(a,b,c) && this(o)")
- public void a3(ProceedingJoinPoint pjp,int a,String b,List c,Object o) {
- System.err.println("advice running");
- pjp.proceed(new Object[]{o,a,b,c});
- }
-
- public static void main(String []argv) {
- new Test().doit();
- }
- }
-
-
- class Test {
- public void doit() {
- List l = new ArrayList();
- callone(5,"hello",l);
- calltwo(5,"hello",l);
- callthree(5,"hello",l);
- callfour(5,"hello",l);
- }
-
- public void callone(int i,String s, List l) {}
- public void calltwo(int i,String s, List l) {}
- public void callthree(int i,String s, List l) {}
- public void callfour(int i,String s, List l) {}
- }
|