AspectJ JoinPoint Frage

8

Ich verwende derzeit JoinPoint, um die Parameter zu erfassen, die zur Laufzeit an die Servicemethoden übergeben werden. Obwohl JoinPoint mir hilft, die Parameterwerte abzurufen, sehe ich, dass es keine gute API zum Abrufen der Namen der Parameter, Parametertypen, einzelner Parameterwerte liefert, wenn der übergebene Parameter ein Array usw. ist.

Hier ist ein Beispiel:

%Vor%

Für die obige Methode, wenn ich JoinPoint.getArgs () verwende, sehe ich einen Müllwert für den Parameter, der ein Array oder eine Sammlung ist. Wenn der Parameter ein Array oder eine Sammlung ist, wie kann ich überprüfen, ob es sich um einen dieser Parameter handelt, und wie kann ich sie durchlaufen, um einzelne Werte abzurufen?

Irgendwelche Vorschläge? Danke

    
soontobeared 19.04.2011, 17:49
quelle

2 Antworten

20

Das sollte funktionieren:

%Vor%

Die ParameterNames sollten mit dem übereinstimmen, was Sie übergeben haben.

Update 1: Sie kompilieren wahrscheinlich mit deaktivierten Debugging-Symbolen - (explizit übergeben Sie javac -g: none oder durch Flags in maven / ant). Wenn die Debugging-Symbole deaktiviert sind, sind die Namen nicht verfügbar und werden vom Compiler durch args1 usw. ersetzt. Versuchen Sie es mit einer Kompilierung, bei der Debug-Symbole nicht explizit deaktiviert sind.

    
Biju Kunjummen 20.04.2011 01:54
quelle
2

AspectJ pointcut

%Vor%

Abrufen von Parameternamen der Methode

%Vor%

Abrufen von Parameterwerten:

%Vor%

Rückgabewert der Methode:

%Vor%     
MAA 11.04.2014 04:49
quelle

Tags und Links