我的理解是..
是0-Many
args而*
是any
名称的一个arg。它是否正确?
aspectj是否支持args(..,myArg,..)
之类的语法?
答案 0 :(得分:8)
这是来自AspectJ网站:http://www.eclipse.org/aspectj/doc/next/progguide/semantics-pointcuts.html
*
表示除“。”之外的任意数量的字符。
..
代表任意数量的字符,包括任意数量的“。”
<强>更新强> 来自AspectJ in Action - 用于方法签名:
在方法签名中,通配符...用于表示方法采用的任何类型和数量的参数
*
指定单个参数
答案 1 :(得分:4)
其他人已在我面前回答了部分问题,所以我只会修改:
.., bla, ..
不起作用,因为如果将参数bla
绑定到变量,则可能存在多个匹配组合,以防匹配类型在参数列表中多次出现。例如:
void foo(int a, String b, String c, File d)
现在如果建议是:
会发生什么 before(String bla) : call(void foo(.., bla, ..)) && args(bla)
bla
String
或b
的值c
是否必须绑定?