AspectJ:对于具有多个参数的方法,使用'args()'进行参数绑定

时间:2011-03-28 21:55:37

标签: java aop aspectj

我在为具有多个参数的方法创建before方面时遇到了一些麻烦。

public class Sample {
    public boolean myCall(String s, String s1, String s3, ByteBuffer bytes, int i, int g) {
        System.out.println("Calling real sample");
    }
}

这方面不符合。我只需要在覆盖代码中使用ByteBuffer参数。

pointcut sampleCall(ByteBuffer bytes) :
    execution(boolean com.example.Sample.myCall (..)) && args(bytes);

before(ByteBuffer bytes) : sampleCall(bytes) {
    System.out.println("Before sample");
}

1 个答案:

答案 0 :(得分:3)

实际上终于让它与

一起工作了
pointcut sampleCall(ByteBuffer bytes) :
    execution(boolean com.example.Sample.myCall(String, String, String, ByteBuffer, ..))
    && args(String, String, String, bytes, ..);

before(ByteBuffer bytes) : sampleCall(bytes) {
    System.out.println("Before sample");
}