親クラス:
public class Animal {
  public String name() {
    return "my name";
  }
}
子クラス:
public class Dog extends Animal {
  // no methods
}
AspectJでへの呼び出しをクロスカットしようとしていますDog.name()が、機能しません:
@Aspect
public class Crosscut {
  @Around("execution(* Dog.name())")
  public Object exec(ProceedingJoinPoint point) {
    // this point is never reached
  }
}
ただし、子メソッドをDogクラスに追加すると、クロスカットは機能します。
public class Dog extends Animal {
  public String name() {
    return super.name();
  }
}
正しいクロスカットを書く方法は?それともまったく不可能ですか?