Annotazione (Java): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
ValterVBot (discussione | contributi)
m Sintassi: tag source deprecati, replaced: <source lang= → <syntaxhighlight lang=, </source> → </syntaxhighlight>
 
(34 versioni intermedie di 27 utenti non mostrate)
Riga 1:
NellaIn programmazione[[Programmazione al computer(informatica)|programmazione]], una '''annotazione Java''' è un modo per aggiungere [[metadata|metadati]] nel [[codice sorgente]] [[Java (linguaggio di programmazione)|Java]] che puòpossono essere disponibiledisponibili per ilal [[programmatore]] durante l'[[esecuzione (informatica)|esecuzione]]. Molte volte è usata come alternativa alla tecnologia [[XML]].
 
Le annotazioni Java possono essere aggiunte agli elementi del [[programma (informatica)|programma]] quali [[Classe (informatica)|classi]], [[Metodo (programmazione)|metodi]], campi, parametri, [[variabile (informatica)|variabili]] locali, e pacchetti. A differenza dei tagstag aggiunti dalla documentazione Java e processati da toolstool come [[XDoclet]], le annotazioni Java sono completamente accessibili dal programmatore mentre il [[software]] è in esecuzione usando unala [[reflectionRiflessione (programminginformatica)|reflectionriflessione]].
 
== Storia ==
Le annotazioni Java sono state introdotte dal [[Java Community Process]] come JSR-175 nel [[2002]] e approvate nel Settembresettembre [[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 [[compilazione|compilato]], il compilatore Java immagazzina i metadatametadati delle annotazioni nei filesfile ''.class''. In seguito, la [[Java Virtual Machine]] (JVM) o altri programmi possono guardare i metadatametadati per determinare come interagire con gli elementi del programma o cambiare il loro comportamento.
 
== Sintassi ==
La dichiarazione di un 'annotazione è una variante dei tagstag 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:
 
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:
<syntaxhighlight lang="java">
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
</syntaxhighlight>
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 ==
Nell'esempio sia Retention che Target sono esempi di annotazioni.
* [[Programmazione dichiarativa]]. Le annotazioni permettono ai programmatori di esprimere in forma dichiarativa alcune caratteristiche del comportamento che il programma (o meglio, i [[modulo (programmazione)|moduli]] che lo compongono) dovrà assumere a tempo di esecuzione.
 
== Bibliografia ==
==Impatto e Percezione==
* [http{{cita web|url=https://www.jcp.org/en/jsr/detail?id=175 |titolo=JSR 175: A Metadata Facility for the JavaTM Programming Language]}}
===Pro===
* ''Programmazione dichiarativa.'' Le annotazioni permettono ai programmatori di dichiarere il comportamento del programma direttamente nel codice sorgente. Rappresentano un esempio di come i costrutti della programmazione dichiarativa possano essere aggiunti ad un linguaggio ad un linguaggio procedurale.
 
===Contro===
* ''Prestazioni.'' Aggiungere metadati durante l'esecuzione causa 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 di programmazione)]]
* [[Model Driven Architecture]]
* [[Macchina virtuale Java]]
* [[C Sharp|Il linguaggio C#]] (Usa i costrutti ''Attribute'' per ottenere lo stesso effetto)
 
== Collegamenti esterni ==
==Bibliografia==
*[ {{cita web|http://java.sun.com/j2se/1.5.0/docs/guide/language/annotations.html |Annotations]}}
* [http://www.jcp.org/en/jsr/detail?id=175 JSR 175: A Metadata Facility for the JavaTM Programming Language]
 
==Collegamenti esterni==
*[http://java.sun.com/j2se/1.5.0/docs/guide/language/annotations.html Annotations]
 
{{Portale|Informatica}}
 
[[Categoria:Java]]
 
[[ca:Anotació (Java)]]
[[de:Annotation (Java)]]
[[en:Java annotation]]
[[es:Anotación Java]]
[[fr:Annotation (Java)]]
[[ja:アノテーション]]