2009-10-06 6 views
1

En Java 6, est-il possible d'injecter une valeur dans un paramètre de méthode (@Target(ElementType.PARAMETER) et @Retention(RetentionPolicy.RUNTIME) -meta-annotated)? Il est tout à fait possible de trouver l'annotation lors de l'exécution en utilisant la réflexion, c'est juste qu'il ne semble pas possible de modifier réellement la valeur du paramètre.Injection de paramètres de méthode annotée

Ou est-ce strictement Java 7 (ou certains JSR encore à finaliser)? Je ne vois pas comment il serait possible (sauf peut-être en utilisant la manipulation de bytecode) en Java 6.

Répondre

1

Plutôt que de faire la manipulation de bytecode vous, il est moins de travail à utiliser quelque chose comme AspectJ avec un annotation pointcut.

+0

C'est intéressant, merci pour votre réponse! –

0

Si votre méthode est déclarée dans une interface, vous pouvez également consulter java.lang.reflect.Proxy et InvocationHandler.

+0

Merci pour votre réponse, mais malheureusement c'est un POJO. –

+0

Non, pas d'interface ici (sauf la déclaration @interface de l'annotation bien sûr). Tout ce qui semble être accessible à partir de l'API Reflection (excluant les proxies dynamiques) est le type du paramètre, pas sa valeur réelle. –

Questions connexes