2 votes

Conseil @Around accéder à thisEnclosingJoinPointStaticPart

Je suis en train de coder un aspect en utilisant le style d'annotation. Je crée un "conseil autour", mais je ne semble pas trouver un moyen d'accéder à thisEnclosingJoinPointStaticPart depuis la méthode du conseil. Chaque fois que j'essaie de définir un argument pour cela, je reçois une erreur du compilateur ajc.

Voici la déclaration de mon point de coupe et du conseil :

@Pointcut("call(@xxx.api.annotation.InvokeOnEDT * gov.raptor..*.*(..))")
void invokeOnEDTPointCut()
{/*vide*/}

@Around("invokeOnEDTPointCut(thisEnclosingJoinPointStaticPart)")
public Object invokeOnEDT(final ProceedingJoinPoint thisJoinPoint, thisEnclosingJoinPointStaticPart) throws Throwable
{...}

Je sais que cela ne compile pas, je le fournis pour montrer ce que je "veux" faire, mais je ne trouve pas de moyen de le faire. J'ai passé des heures à chercher sur le web et les seuls exemples que je trouve sont pour les conseils Before ou After, et ils semblent permettre cette syntaxe. Le conseil Around se comporte clairement différemment, mais rien de ce que j'ai trouvé ne le discute.

L'erreur que je reçois lors de la compilation est la suivante :

[ERREUR] ...\aspects\DispatchEDTAspects.java:42:0::0 nombre d'arguments incompatibles pour le point de coupe, 0 attendu 1 trouvé

Des idées sur la façon d'accéder à thisEnclosingJoinPointStaticPart depuis la méthode du conseil ?

0voto

Fred Points 386

Que diriez-vous de :

@Around("call(@xxx.api.annotation.InvokeOnEDT * gov.raptor..*.*(..))")
        public Object advice(final ProceedingJoinPoint thisJoinPoint, ProceedingJoinPoint.EnclosingStaticPart thisEnclosingJoinPointStaticPart) throws Throwable {
    ...
    }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X