|
1234567891011121314151617181920212223242526272829303132333435 |
- import org.aspectj.lang.annotation.*;
- import org.aspectj.lang.*;
-
- public aspect Code4 {
-
- void around(Foo targeto, String s): call(* Foo.run(String)) && args(s) && target(targeto) {
- System.out.println("first: binding target, just passing everything through");
- proceed(targeto, s);
- }
-
- public static void main(String []argv) {
- new Foo(0).execute();
- }
- }
-
- class Foo {
- int i;
- public Foo(int i) {
- this.i = i;
- }
-
- public void execute() {
- Foo f1 = new Foo(1);
- Foo f2 = new Foo(2);
- f1.run("abc");
- }
-
- public void run(String s) {
- System.out.println("Executing run("+s+") on "+this.toString());
- }
-
- public String toString() {
- return ("Foo(i="+i+")");
- }
- }
|