Note sono state aggiunte al linguaggio Java in Java 1.5 e può facilmente aggiungere una completamente nuova dinamica per regolare programmazione . In poche parole, le annotazioni sono un modo di aggiungere metadati ai diversi aspetti di una classe, le informazioni supplementari che possono essere utilizzati per modificare il modo in cui la classe si comporta o semplicemente per descrivere ulteriormente in modi non facilmente applicabili i metodi standard . Utilizzo delle annotazioni
Annotazioni sono estremamente semplici da usare , e può essere applicato a più aree del codice. Un esempio di utilizzo di alcune annotazioni sarebbe:
@ Deprecated
public class MyClass ...
che segnerebbe la classe come " deprecato " , che significa che non dovrebbe essere utilizzato se possibile . Un'altra annotazione utile a scopo dimostrativo è il SuppressWarnings annotazione :
@ SuppressWarnings ( " non utilizzati ")
somethingWithUnusedVariables public void () { ....
Con questo esempio , si può vedere che è possibile passare informazioni alla annotazione - in questo caso , il tipo di avvertimenti per sopprimere - che può quindi essere utilizzato da diversi strumenti, quali il compilatore
cosa è . una annotazione ?
codice Java , un'annotazione è poco più di una interfaccia normale. La creazione di uno è estremamente semplice :
pubblica @ interfaccia MyAnnotation {
}
Questa nuova annotazione può essere utilizzato ovunque , come ad esempio per decorare una classe:
< p > @ MyAnnotation
classe SomeClass pubblico ...
Naturalmente , in questa forma , è piuttosto inutile - non contiene dati e per default tutte le annotazioni vengono memorizzate con il file di classe , ma sono non accessibile in fase di runtime , in modo da servire come poco più di un commento in più.
Creazione di annotazioni utili
come affermato in precedenza , da annotazioni predefinite non sono disponibili a runtime. Questo va bene se si sta semplicemente usando come indicatore di qualche tipo per altri sviluppatori di prendere atto di , o se avete intenzione di fare un po ' di trasformazione del bytecode di livello , ma al fine di accedere al vostro annotazione a runtime ( via riflessione ) è necessario indicare al compilatore di farlo. È possibile farlo con annotazione anotherent che si applica alla vostra nuova annotazione :
@ Retention ( RetentionPolicy.RUNTIME ) per
Questo vi permetterà di accedere alle informazioni di annotazione - mediante la riflessione - mentre il codice è in esecuzione ed elaborare di conseguenza.
Reading informazioni annotazione
lettura informazioni annotazione in fase di esecuzione è un po 'difficile , ma affatto impossibile . Utilizzando le funzionalità di riflessione di Java , è possibile ottenere le annotazioni che vengono applicati a una classe , metodo o campo , nonché delle notizie in tale annotazione . Ad esempio , si consideri il seguente semplice annotazione :
@ Retention ( RetentionPolicy.RUNTIME ) per
pubblica @ interfaccia Autore {
valore String
( ) ;
}
applicato a una classe in questo modo:
@ Author ( " John Doe " ) per
public class MyClass { ...
È possibile ottenere le informazioni di autore con il seguente codice :
finale Autore author = MyClass.class.getAnnotation ( Author.class ) ;
System.out.println ( author.value ( ) ) ; < br >