Les gars est-il un moyen de passer une annotation comme un paramètre direct (plutôt que de faire tous les frais généraux de réflexion)? Par exemple dans le code suivant, j'ai un numéro d'annotation qui contient une valeur int, je veux passer en paramètre à la méthode addImpl, comment puis-je faire cela (autre que par réflexion)?Existe-t-il un moyen de transmettre une annotation Java en tant que paramètre?
Code Snippet:
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
public @interface Number {
int value();
}
public void add(int x2) {
addImpl(@Number(value = 10) lol, x2);
}
public void addImpl(Number a, int b) {
System.out.println(a.value() + b);
}
public static void main(String[] args) {
new TestClass().add(3);
}
Pourquoi Nombre défini comme une annotation plutôt qu'une classe ordinaire? Le but des annotations est d'attacher statiquement des méta-données au moment de la compilation. Si ce n'est pas votre objectif, quelle est la raison pour laquelle il est défini comme une annotation? – jthg
Le numéro est juste un exemple de chose que je suis venu, je fais cela pour rendre un protocole impl plus facile;) –