Je souhaite créer un pointcut pour cibler un appel d'une méthode à partir de méthodes spécifiques.AspectJ pointcut à l'appel de méthode dans des méthodes spécifiques
prendre les éléments suivants:
class Parent {
public foo() {
//do something
}
}
class Child extends Parent {
public bar1() {
foo();
}
public bar2() {
foo();
}
public bar3() {
foo();
}
}
Je voudrais avoir une coupe de point de l'appel à foo() dans les méthodes bar1() et bar3()
Je pensais quelque chose comme
pointcut fooOperation(): call(public void Parent.foo() && (execution(* Child.bar1()) || execution(* Child.bar3()));
before() : fooOperation() {
//do something else
}
Cependant, cela ne semble pas fonctionner. des idées?
grâce
Je dirais que celui-ci correspondrait aussi à l'appel à 'foo()' dans 'bar2()', contrairement à l'intention? – ShiDoiSi
oui, cela attraperait 'foo()' dans 'bar2()', ce qui n'est pas ce qui est prévu – kabal
Haha. Voici une recommandation: si vous voulez capturer foo() à partir de bar2..barn, utilisez mon point de coupe et ignorez l'appel à foo de bar1. Entrer et changer cette définition à chaque fois qu'une nouvelle barre est ajoutée n'est pas très utile. – Rob