Я экспериментирую с аспектно-ориентированным программированием. Я установил AspectJ-плагин в Eclipse и выполнил все шаги, упомянутые в этом руководстве .
Все связи между созданными аспектами работают, но когда я пытаюсь запустить проект, я получаю следующее исключение:
HelloException in thread "main" java.lang.VerifyError: Expecting a stackmap frame at branch target 6 in method helloworld.World.<clinit>()V at offset 0
at helloworld.Hello.sayHello(Hello.java:11)
at helloworld.Hello.main(Hello.java:6)
Когда я очищаю класс World.aj и запускаю проект, все работает, и я получаю ожидаемое «Hello» в консоли.
Вот классы, которые я создал во время урока:
Hello.java
package helloworld;
public class Hello {
public static void main(String[] args) {
sayHello();
}
public static void sayHello() {
System.out.print("Hello");
}
}
World.aj
package helloworld;
public aspect World {
pointcut greeting() : execution(* Hello.sayHello(..));
after() returning() : greeting() {
System.out.println(" World!");
}
}