Utente:LoStrangolatore/Stubs/Annotazioni: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
mNessun oggetto della modifica
Riga 4:
 
 
Un'annotazione permette di marcaremarca un elemento di programma così daper corredarlo di informazioni aggiuntive. È possibile marcare la dichiarazione di una classe o interfaccia, un campo, un metodo, un costruttore, un parametro oppure una variabile locale. Le informazioni aggiuntive sono chiamate ''metadati''. Il tipo, il formato e il significato dei metadati dipendono dall'annotazione usata.
 
Il fatto che un elemento di programma sia annotato vuol dire semplicemente che esiste un tool che riconosce quella specifica annotazione e che è in grado di elaborare quei metadati.
Riga 27:
 
== Caratteristiche ==
La meta-annotazione <tt>@Documented</tt> indica ai tool che generano documentazione che l'annotazione marcata dovrebbe essere inclusa nella documentazione generata.
{{...}}
 
Retention, target, documented, inherited, ...
La meta-annotazione <tt>@Inherited</tt> indica che l'annotazione viene ereditata.
 
; Permanenza
La meta-annotazione <tt>@Retention</tt> indica fino a che punto l'annotazione deve restare dal momento della scrittura del programma fino alla esecuzione. Essa ha solo un parametro il cui valore può essere
*<tt>RetentionPolicy.SOURCE</tt>: l'annotazione marcata va considerata solo all'interno del codice sorgente, cioè va scartata dal compilatore;
*<tt>RetentionPolicy.CLASS</tt>: l'annotazione va compilata all'interno del bytecode, ma viene scartata dalla virtual machine al momento dell'esecuzione del programma;
*<tt>RetentionPolicy.RUNTIME</tt>: l'annotazione va compilata all'interno del bytecode e viene anche portata in memoria durante l'esecuzione del programma.
 
; Elementi che è possibile marcare
Gli elementi che è possibile marcare sono individuati dalla enumerazione <tt>{{Java/Javadoc|java.lang.annotation.ElementType|javadoc=java/lang/annotation/ElementType.html}}</tt>. È possibile marcare la dichiarazione di una classe o interfaccia, un campo, un metodo, un costruttore, un parametro oppure una variabile locale.
 
== Annotazioni a cui la specifica di linguaggio dà un significato particolare ==
Line 34 ⟶ 44:
Override, Deprecated, SuppressWarnings, ...
 
== Leggere le annotazioni ==
{{...}} (le tecniche diverse da adottare in base al contesto di utilizzo: sorgente ===> lettura del codice sorgente, ad es. usando uno dei programmi e librerie appositi già implementati apposta per estrarre le annotazioni, in particolare dare qualche cenno su 1. apt 2. il processor utilizzabile come parte di javac 3. il package javax.tools; classe ===> ???; runtime ===> reflection)
 
[[categoria:Java|Annotazioni]]