Ragazzi c'è un modo per passare un'annotazione come parametro diretto (piuttosto facendo tutto il sovraccarico di riflessione)? Per esempio nel codice seguente, ho un numero di annotazione che contiene un valore int, voglio passare come parametro al metodo addImpl, come posso farlo (oltre che per riflessione)?C'è un modo per passare un'annotazione Java come parametro?
Snippet di codice:
@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);
}
Perché numero definito come annotazione piuttosto che una classe normale? Lo scopo delle annotazioni è di associare staticamente i metadati al momento della compilazione. Se questo non è il tuo obiettivo, qual è la ragione per cui è definito come un'annotazione? – jthg
Il numero è solo un esempio di cosa sono venuto, lo sto facendo per semplificare un protocollo impl;) –