Es wird nicht, weil in() arbeiten passt nur die Ausführung in Ihrem Paket, aber Sie erben die Methode toString(), wenn Sie es ausdrücklich erklärt wird.
Edit: Ich hatte einen Blick, wird cflow auch nicht. Ich kann keine andere Möglichkeit sehen, dies ohne Ladezeitweben zu tun, aber dies würde Logging alle Aufrufe toString(), was eine sehr schlechte Idee ist. Sie sind wahrscheinlich viel besser einfach toString erklärt() in allen Verfahren mit Rückkehr super.toString() so Ihre ursprüngliche pointcut funktioniert (und wenn toString() sonst nie genannt wird, verliert man nicht alles).
Wenn Sie entschlossen sind, diesen Ansatz zu verfolgen, gibt es einen Abschnitt der aspectj documentation, der Sie mit dem Laden der Ladezeit beginnen wird.
Update: Eine andere Option ist, Detail Formatters Eclipse zu verwenden. Mit ihnen können Sie die toString() - Methoden für Debugging-Zwecke dekorieren.
Ursprüngliche Antwort: Sie versuchen cflow verwendet, könnte in dem Steuerfluss von toString() jeder beitreten Punkt übereinstimmen. Hinweis: Ich konnte dies nicht überprüfen, also überprüfe die Syntax (es muss möglicherweise auch Ausführung() statt Aufruf() sein, obwohl ich mich nicht sicher erinnern kann). Zum Beispiel:
public pointcut myToString() : cflow(call(String mypackage.*.toString()));
Ein weiterer Punkt, passen Hinzufügen System.out Anrufe, sollten Sie eine Logging-Framework.
Vielleicht sollten Sie versuchen, Object.toString() –
weben Das wird * übereinstimmen * alle toString(), die nicht überschrieben wurde –