|
1234567891011121314151617181920212223 |
- class OverloadedPointcutsInAspect {
- public static void main(String[] args) {
- new C().run();
- }
- }
- class C {
- public void run() {}
- }
-
- aspect A {
- declare parents: C implements Runnable;
- declare parents: C implements SubRunnable;
- interface SubRunnable extends Runnable {}
-
- pointcut pc(Runnable r) : target(r) && call(void run());
- pointcut pc(SubRunnable r) : target(r) && call(void run());
- before(Runnable r) : pc(r) { log("pc(Runnable r)"); }
- before(SubRunnable r) : pc(r) { log("pc(SubRunnable r)"); }
- before() : pc(Runnable) { log("pc(Runnable)"); }
- before() : pc(SubRunnable) { log("pc(SubRunnable)"); }
- before() : pc(*) { log("pc(*)"); }
- void log(String s) { System.out.println(s); }
- }
|