我的理解是,这..是0-Manyargs 并且*是any名称的一个 arg。这个对吗?
aspectj 是否支持类似的语法args(..,myArg,..)?
我的理解是,这..是0-Manyargs 并且*是any名称的一个 arg。这个对吗?
aspectj 是否支持类似的语法args(..,myArg,..)?
这是来自 AspectJ 网站: http: //www.eclipse.org/aspectj/doc/next/progguide/semantics-pointcuts.html
*表示除“.”之外的任意数量的字符
..表示任意数量的字符,包括任意数量的“.”
Update From AspectJ in Action - 对于方法签名:
在方法签名中,通配符 .. 用于表示方法采用的任何类型和数量的参数
*指定单个参数
其他人已经回答了我面前的部分问题,所以我只会修改:
.., bla, ..不起作用,因为如果将参数绑定bla到变量,则可能存在多个匹配组合,以防匹配类型在参数列表中多次出现。例子:
void foo(int a, String b, String c, File d)
现在,如果建议是:
before(String bla) : call(void foo(.., bla, ..)) && args(bla)
应该bla绑定到or的String值?bc