7

我的理解是,这..0-Manyargs 并且*any名称的一个 arg。这个对吗?

aspectj 是否支持类似的语法args(..,myArg,..)

4

2 回答 2

11

这是来自 AspectJ 网站: http: //www.eclipse.org/aspectj/doc/next/progguide/semantics-pointcuts.html

*表示除“.”之外的任意数量的字符

..表示任意数量的字符,包括任意数量的“.”

Update From AspectJ in Action - 对于方法签名:

在方法签名中,通配符 .. 用于表示方法采用的任何类型和数量的参数

*指定单个参数

于 2012-09-06T15:56:57.513 回答
5

其他人已经回答了我面前的部分问题,所以我只会修改:

.., 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

于 2012-09-06T17:54:59.070 回答