Java 如何加上「;“之后”;AspectJ中的方法?

Java 如何加上「;“之后”;AspectJ中的方法?,java,aspectj,Java,Aspectj,我试图理解AspectJ是如何工作的。首先,我想在之后添加一个名为的方法,使用AspectJ调用通常的现有方法 myClass可以在下面看到: package myclass; public class MyClass { public void method1(){ System.out.println("methode1 is called"); } public void method2(String str){ System.o

我试图理解AspectJ是如何工作的。首先,我想在之后添加一个名为
的方法,使用AspectJ调用通常的现有方法

myClass可以在下面看到:

package myclass;
public class MyClass {

    public void method1(){
        System.out.println("methode1 is called");
    }

    public void method2(String str){
        System.out.println("methode2 is called " + str);
    }
}
在方法2之后,我想显示一些文本消息和参数
str

package myclass;

public aspect aspect2 {
    pointcut func(String str): 
        call(myclass.MyClass.method2(String)) &&  args(str);
    after(String str) : func(str) {
        System.out.println("Aspect from method2: " + str );
    }
}
最后调用它的是main类
entrypoint

package myclass;
public class entrypoint {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        MyClass mc = new MyClass();
        mc.method1();
        mc.method2("zzz");
    }
}
作为输入,它显示:

methode1 is called
methode2 is called zzz
它不显示method2:zzz中的
方面,因此方面不起作用。

我做错了什么?

我将我的评论作为@kriegaex ask的答案发布。 代码中有一些错误: 1.在切入点中,您忘记添加返回类型,即使它是void,您也应该指定它。 2.在建议中,在(字符串str)returning:func(str)


在你的切入点中添加返回类型(void include),并在建议中添加返回后的返回(String str)returning:func(str)@JEY谢谢你,先生,这很有效@JEY,请将您的评论转换为OP可以接受的答案,以便结束此问题。
package myclass;
public aspect aspect2 {
        pointcut func(String str): call(void myclass.MyClass.method2(String)) &&  args(str);
    after(String str) returning : func(str) {
        System.out.println("Aspect from method2: " + str );
    }
}