アスペクトを正しく動作させるのに問題があります。何らかの理由で、アスペクトがどこに適用されるかについて私が本当に一般的である場合にのみ機能しているようです。4 つのポイントカット/アドバイスのうち、最後の一致のみが出力されます。ここで何が欠けていますか?
public aspect VerboseAspect
{
after(Game game) returning:
call(* Game.addPlayer(Player))
&& target(game) {
System.out.println("addPlayer(Player): player has been added");
}
after(Game game) returning:
call(* Game.addPlayer(..))
&& target(game) {
System.out.println("addPlayer(..): player has been added");
}
after(Game game) returning:
call(* Game.*(Player))
&& target(game) {
System.out.println("*(Player):player has been added");
}
after(Game game) returning:
call(* Game.*(..))
&& target(game) {
System.out.println("*(..):player has been added");
}
}
Java クラス:
public class Game {
public void addPlayer(Player player) {
System.out.println("inside class");
this.players.add(player);
}
}
出力:
inside class
*(..):player has been added