Определите pointcut для захвата интерфейса, но не родительского или подчиненного интерфейсов - PullRequest
3 голосов
/ 18 мая 2010

Мне было интересно, как определить pointcut в aspecJ, который захватывает любой метод интерфейса, но не методы любого родительского или подчиненного интерфейса.

public interface A {
  void methodA();
}

public interface B extends A {
  void methodB();
}

public interface C extends B {
  void methodC();
}

Я хотел бы получить сообщение, которое ловит только methodB (), а не methodA () или methodC (). Есть ли способ, которым я могу сделать это в общем случае, не перечисляя все суб и супер интерфейсы в pointcut?

Ответы [ 2 ]

2 голосов
/ 25 мая 2010

Найти прямое наследование невозможно с Java или AspectJ.

1 голос
/ 18 мая 2010

Вы пробовали B.methodB (..) или B + .methodB (..) или даже B +. * (..) шаблоны метода AspectJ?

...