blob: 8205d6eda5d30bbe264487764b424874faa1edc7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
import org.xyz.*;
public aspect AJDKExamples {
declare warning : call(* org.xyz.*.*(int, String...)) : "call vararg match";
declare warning : execution(* org.xyz.*.*(Integer...)) : "execution vararg match";
declare warning : initialization(org.xyz.*.new((Foo || Goo)...)) : "init vararg match";
declare warning : execution(* *.*(String...)) : "single vararg";
declare warning : execution(* *.*(String[])) : "single String[]";
before(int i, String[] ss) : call(* foo(int,String...)) && args(i,ss) {
System.out.println("Matched at " + thisJoinPoint);
}
public static void main(String[] args) {
X foo = new X();
foo.foo(5,"hello");
foo.bar(5,new String[]{"hello"});
}
}
class X {
public void foo(String... ss) {}
public void bar(String[] ss) {}
public void foo(int i,String... ss) {}
public void bar(int i,String[] ss) {}
}
|