Chicos ¿hay alguna manera de pasar una Anotación como un parámetro directo (más bien haciendo toda la reflexión por encima)? Por ejemplo, en el siguiente código, tengo un número de anotación que contiene un valor int, quiero pasar como un parámetro al método addImpl, ¿cómo puedo hacer eso (que no sea por reflexión)?¿Hay alguna forma de pasar una anotación Java como parámetro?
Fragmento de código:
@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);
}
¿Por qué es el número define como una anotación en lugar de una clase regular? El objetivo de las anotaciones es adjuntar los metadatos estáticamente en tiempo de compilación. Si ese no es su objetivo, ¿cuál es la razón por la que se define como una anotación? – jthg
El número es solo una muestra de lo que surgió, estoy haciendo esto para hacer que un protocolo sea más fácil;) –