Warum funktioniert der folgende Code:Warum habe ich die Warnung "Beratung wurde nicht angewendet" erhalten?
hat nicht angewandt wordenBeratung definiert in org.eclipse.ajdt.examples.ListAdvice:
pointcut callsToList() : call(* List.*(..)); before(List l) : callsToList() && target(l) { System.out.println("cool"); }
die folgende Warnung erzeugt [Xlint: adviceDidNotMatch]
Ich arbeite mit in Eclipse. Ich habe eclipse aspectj plugin installiert und natürlich ist mein Projekt ein aspectj Projekt.
Edit: Außerdem habe ich angefangen von einem Arbeitsbeispiel von AJDT Plugin zur Verfügung gestellt:
pointcut callsToBeginTask() : call(void IProgressMonitor.beginTask(..));
before() : callsToBeginTask() {
System.out.println("cool");
};
ich keinen Unterschied, außer der Tatsache sehen, dass dieses Beispiel funktioniert ohne Vorwarnung ...
Vielleicht hängt das mit der Eclipse/OSgi Klassenladepolitik zusammen? Wie funktioniert aspectj, um die bereitgestellten Pointcuts zu haken? –
Können Sie den Code anzeigen, der durch den Ratschlag gewebt werden soll? – Espen
Nicht sicher, Ihre Anfrage zu verstehen. Ich möchte, dass dieser Rat in einer Eclipse-Anwendung aufgerufen wird, die mehrere benutzerdefinierte Plugins ausführt. Daher ist der Code, den ich analysieren möchte, auf viele Plugins/Pakete/Klassen verteilt. –