Obtenir la valeur du paramètre si le paramètre n'existe annotation
Est-il possible d'obtenir la valeur d'un paramètre si une annotation est présente sur ce paramètre?
Donné EJB avec le paramètre-niveau annotations:
public void fooBar(@Foo String a, String b, @Foo String c) {...}
Et un intercepteur:
@AroundInvoke
public Object doIntercept(InvocationContext context) throws Exception {
//Get value of parameters that have annotation @Foo
}
OriginalL'auteur user2664820 | 2013-08-08
Vous devez vous connecter pour publier un commentaire.
Dans votre
doIntercept()
vous pouvez récupérer de la méthode appelée à partir de laInvocationContext
et obtenir le paramètre annotations.Parce que le
Annotation[][]
retourne un vide 2ème dimension tableau si il n'y a pas d'Annotations, vous connaissez le paramètre postes ont les annotations. Vous pouvez ensuite appelerInvocationContext#getParameters()
pour obtenir unObject[]
avec les valeurs de tous les paramètres passés. La taille de ce tableau et de laAnnotation[][]
sera le même. Il suffit de retourner la valeur de l'index où il n'y a pas d'annotations.Pas tout à fait ce que je cherche. Je ne suis pas en train de chercher tous les attributs de l'annotation Foo. Plutôt, je veux les valeurs des paramètres. Dans mon exemple ci-dessus, je veux les valeurs des arguments a et c.
Ouais, juste mis à jour. Le
method.getParameterAnnotations();
vous indiquera les positions et lescontext.getParameters()
vous donnera la valeurOriginalL'auteur Sotirios Delimanolis
Vous pouvez essayer quelque chose comme cela,je définir un Param annotation nommé MyAnnotation et je reçois le Param annotation de cette façon. Elle fonctionne.
Merci pour vos conseils.C'est mon premier temps de répondre et je ne le savais pas. Merci!
OriginalL'auteur franlisa
Vous pouvez essayer quelque chose comme cela
OriginalL'auteur Evgeniy Dorofeev