Annotazione (Java)
In programmazione, una annotazione Java è un modo per aggiungere metadati nel codice sorgente Java che possono essere disponibili al programmatore durante l'esecuzione. Molte volte è usata come alternativa alla tecnologia XML.
Le annotazioni Java possono essere aggiunte agli elementi del programma quali classi, metodi, campi, parametri, variabili locali, e pacchetti. A differenza dei tag aggiunti dalla documentazione Java e processati da tool come XDoclet, le annotazioni Java sono completamente accessibili dal programmatore mentre il software è in esecuzione usando la riflessione.
Storia
[modifica | modifica wikitesto]Le annotazioni Java sono state introdotte dal Java Community Process come JSR-175 nel 2002 e approvate nel settembre 2004. Le annotazioni sono divenute disponibili con il Java Development Kit (JDK) versione 1.5. Questa caratteristica è stata aggiunta al linguaggio Java attraverso le specifiche.
Elaborazione
[modifica | modifica wikitesto]Quando il codice Java viene compilato, il compilatore Java immagazzina i metadati delle annotazioni nei file .class. In seguito, la Java Virtual Machine (JVM) o altri programmi possono guardare i metadati per determinare come interagire con gli elementi del programma o cambiare il loro comportamento.
Sintassi
[modifica | modifica wikitesto]La dichiarazione di un'annotazione è una variante dei tag che sono stati aggiunti, in passato, per commentare le sezioni.
Le annotazioni prendono la forma di una dichiarazione di interfaccia con un @ che le precede e opzionalmente marcate con una meta-annotazione, come mostrato sotto:
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
Nell'esempio sia Retention che Target sono esempi di meta annotazioni e indicano che l'annotazione si ricava a runtime e che può essere applicata solo a metodi.
Vantaggi
[modifica | modifica wikitesto]- Programmazione dichiarativa. Le annotazioni permettono ai programmatori di esprimere in forma dichiarativa alcune caratteristiche del comportamento che il programma (o meglio, i moduli che lo compongono) dovrà assumere a tempo di esecuzione.
Bibliografia
[modifica | modifica wikitesto]Voci correlate
[modifica | modifica wikitesto]Collegamenti esterni
[modifica | modifica wikitesto]- Annotations, su java.sun.com.