我的理解是,这..
是0-Many
args 并且*
是any
名称的一个 arg。这个对吗?
aspectj 是否支持类似的语法args(..,myArg,..)
?
我的理解是,这..
是0-Many
args 并且*
是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
值?b
c