Annotazioni Marker in Java
- Le annotazioni marker sono un tipo speciale di annotazione che non contiene membri e il loro unico scopo è marcare un elemento.
- Per verificare la presenza di un'annotazione marker, si utilizza il metodo
isAnnotationPresent()
definito dall'interfacciaAnnotatedElement
. - Un'annotazione marker può essere applicata semplicemente utilizzando il suo nome, senza la necessità di parentesi vuote.
Annotazioni Marcatrici
Un'Annotazione marker o Annotazione marcatrice è un tipo speciale di annotazione che non contiene membri.
Il suo unico scopo è marcare un elemento. Quindi, la sua presenza come annotazione è sufficiente. Il modo migliore per determinare se un'annotazione marker è presente è utilizzare il metodo isAnnotationPresent()
, che è definito dall'interfaccia AnnotatedElement
.
Ecco un esempio che utilizza un'annotazione marker. Poiché un'interfaccia marcatore non contiene membri, semplicemente determinare se è presente o assente è sufficiente.
import java.lang.annotation.*;
import java.lang.reflect.*;
// Un'annotazione marcatore.
@Retention(RetentionPolicy.RUNTIME)
@interface MioMarcatore {
}
class Marcatore {
// Annota un metodo utilizzando un marcatore.
// Nota che non sono necessarie le ().
@MioMarcatore
public static void mioMetodo() {
Marcatore ob = new Marcatore();
try {
Method m = ob.getClass().getMethod("mioMetodo");
// Determina se l'annotazione è presente.
if(m.isAnnotationPresent(MioMarcatore.class))
System.out.println("MioMarcatore è presente.");
} catch (NoSuchMethodException exc) {
System.out.println("Metodo Non Trovato.");
}
}
public static void main(String[] args) {
mioMetodo();
}
}
L'output, mostrato qui, conferma che @MioMarcatore
è presente:
MioMarcatore è presente.
Nel programma, notiamo che non è necessario seguire @MioMarcatore
con le parentesi quando viene applicato. Quindi, @MioMarcatore
viene applicato semplicemente utilizzando il suo nome, come questo:
@MioMarcatore
Non è sbagliato fornire un set vuoto di parentesi, ma non sono necessarie.