如何使用特定类型的参数将方面定位到方法?

How to target aspect to method with argument of certain type?

如果我写我的方面

@Before("args(data)")
public void beforeMethod( MyParam data ) {
    // ...
}

它将处理方法

public void m1(MyParam param){};

如果我把aspect写成

@Before("args(data,..)")
public void beforeMethod( MyParam data ) {
    // ...
}

它将处理方法

public void m2(MyParam param, OtherParam param2, Object smthElse){};

但是MyParam param应该是第一个。

问题是:如何配置 @Before("args(?)") 以匹配 MyParam param 不是此处第一个参数的方法?

@Before("args(?)")
public void m3(OtherParam param2, MyParam param, Object smthElse){};

无法测试,但这可能是一种方法 -

args(*, param, ..)