Annotazione (Java)
Nella programmazione al computer, una annotazione Java è un modo per aggiungere metadati nel codice sorgente Java che può essere disponibile per il 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 tags aggiunti dalla documentazione Java e processati da tools come XDoclet, le annotazioni Java sono completamente accessibili dal programmatore mentre il software è in esecuzione usando una reflection.
Storia
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
Quando il codice Java viene compilato, il compilatore Java immagazzina i metadata delle annotazioni nei files class. In seguito, la Java Virtual Machine (JVM) o altri programmi possono guardare i metadata per determinare come interagire con gli elementi del programma o cambiare il loro comportamento.
Sintassi
La dichiarazione di un'annotazione è una variante dei tags 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 annotazioni.
Impatto e Percezione
Pro
- Programmazione dichiarativa. Le annotazioni permettono ai programmatori di dichiarare il comportamento del programma direttamente nel codice sorgente. Rappresentano un esempio di come i costrutti della programmazione dichiarativa possano essere aggiunti ad un linguaggio orientato agli oggetti.
Contro
- Prestazioni. Aggiungere metadati durante l'esecuzione potrebbe causare un ulteriore aumento dell'occupazione di memoria.
- Mancanza di standard. Ci sono pochi standard che indicano quali tag per i metadati debbano essere usati.
Voci correlate
- Java (linguaggio)
- Model Driven Architecture
- Macchina virtuale Java
- Il linguaggio C# (Usa i costrutti Attribute per ottenere lo stesso effetto)