You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

A42.java 735B

1234567891011121314151617181920212223242526272829303132
  1. // Bind the target and pass in the right order
  2. import org.aspectj.lang.ProceedingJoinPoint;
  3. import org.aspectj.lang.annotation.*;
  4. @Aspect
  5. public class A42 {
  6. M newM = new M("2");
  7. @Around("call(void M.method(String)) && args(p) && target(t)")
  8. public void a( ProceedingJoinPoint pjp, M t, String p) throws Throwable {
  9. System.err.println("advice from ataj aspect");
  10. pjp.proceed(new Object[]{newM,"faked"});
  11. }
  12. public static void main(String []argv) {
  13. M.main(argv);
  14. }
  15. }
  16. class M {
  17. String prefix;
  18. public M(String prefix) { this.prefix = prefix; }
  19. public static void main( String[] args ) {
  20. M m = new M("1");
  21. m.method("real");
  22. }
  23. public void method(String s) { System.err.println(prefix+s); }
  24. }