Java 你怎么办。。和*aspectj中的平均值
我的理解是,Java 你怎么办。。和*aspectj中的平均值,java,annotations,aspectj,Java,Annotations,Aspectj,我的理解是,。是0-Many参数,*是任何名称的一个参数。这是正确的吗 aspectj是否支持像args(..,myArg,…)这样的语法 这是来自AspectJ网站: *表示除“.”以外的任意数量的字符 。表示任意数量的字符,包括任意数量的“.” 更新 从AspectJ开始-对于方法签名: 在方法签名中,通配符。。用于表示方法采用的任何类型和数量的参数 *指定了一个参数其他人已经回答了我面前的部分问题,因此我只修改: ,bla,…不起作用,因为如果将参数bla绑定到一个变量,则在参数列表中多次
。
是0-Many
参数,*
是任何名称的一个参数。这是正确的吗
aspectj是否支持像args(..,myArg,…)
这样的语法 这是来自AspectJ网站:
*
表示除“.”以外的任意数量的字符
。
表示任意数量的字符,包括任意数量的“.”
更新
从AspectJ开始-对于方法签名:
在方法签名中,通配符。。用于表示方法采用的任何类型和数量的参数
*
指定了一个参数其他人已经回答了我面前的部分问题,因此我只修改:
,bla,…
不起作用,因为如果将参数bla
绑定到一个变量,则在参数列表中多次出现匹配类型的情况下,可能会有多个匹配组合。例如:
void foo(int a、字符串b、字符串c、文件d)
如果建议是:
before(stringbla):调用(voidfoo(..,bla,..)&&args(bla)
bla
是否应该绑定到b
或c
的String
值?var-arg只能是Java中的最后一个参数(在末尾)。编译器/解释器很难/不可能知道在您的情况下传递的参数实际上是myArg
*“通配符,则任何参数都将匹配,如果它是特殊的通配符”.“,则任何数量的参数都将匹配“是的,您是对的,我也相应地更新了方法签名的答案。AspectJ不支持(..,myarg,..)
,但不确定原因。