在aspectj中,..和*的含义是什么

时间:2012-09-06 15:11:50

标签: java annotations aspectj

我的理解是..0-Many args而*any名称的一个arg。它是否正确?

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

2 个答案:

答案 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 Stringb的值c是否必须绑定?