Nwlapcug.com


Una spiegazione delle annotazioni Java

Una spiegazione delle annotazioni Java


Le annotazioni sono state aggiunte al linguaggio Java in Java 1.5 e possono facilmente aggiungere una dinamica completamente nuova alla programmazione regolare. In poche parole, le annotazioni sono un modo di aggiungere metadati ai diversi aspetti di una classe, informazioni extra che possono essere utilizzate per cambiare il modo di classe si comporta o semplicemente per descrivere ulteriormente le buone maniere non facilmente applicabili tramite mezzi standard.

Utilizzo delle annotazioni

Le annotazioni sono estremamente semplici da utilizzare e può essere applicato a più aree del codice. Un esempio di utilizzo qualche annotazione potrebbe essere:

@Deprecated

public class MyClass...

Che avrebbe segnato la classe come "deprecato", che significa che non deve essere utilizzato se possibile. Un'altra annotazione utile per scopi dimostrativi è l'annotazione SuppressWarnings:

@SuppressWarnings("unused")

Public Sub somethingWithUnusedVariables() {...

Con questo esempio, è possibile vedere che è possibile passare informazioni all'annotazione..--in questo caso, il tipo di avvisi da eliminare..--che può quindi essere utilizzato da diversi strumenti, quali il compilatore.

Che cosa è un'annotazione?

Nel codice Java, un'annotazione è poco più di una normale interfaccia. Creazione di uno è estremamente semplice:

pubblica @interface () {MyAnnotation

}

Questa nuova annotazione può essere utilizzato ovunque, ad esempio per decorare una classe:

@MyAnnotation

pubblica classe SomeClass...

Naturalmente, in questa forma, è piuttosto inutile- - non contiene dati e per impostazione predefinita tutte le annotazioni vengono memorizzate con il file di classe ma non sono accessibili in fase di esecuzione, quindi servono come poco più di un commento supplementare.

Creazione di annotazioni utili

Come affermato in precedenza, per impostazione predefinita le annotazioni sono disponibili in fase di esecuzione. Questo va bene se stai semplicemente utilizzandola come un indicatore di qualche tipo per altri sviluppatori di prendere nota di, o se avete intenzione di fare alcuni bytecode-livello di elaborazione, ma per poter accedere la tua annotazione in fase di esecuzione (tramite reflection) è necessario indicare al compilatore di farlo. È possibile farlo con annotazione di anotherent che si applica alla vostra nuova annotazione:

@Retention(RetentionPolicy.RUNTIME)

Questo vi permetterà di accedere alle informazioni di annotazione - attraverso la riflessione..--mentre il codice è in esecuzione ed elaborarla di conseguenza.

Lettura delle informazioni di annotazione

Informazioni di annotazione di lettura in fase di esecuzione sono un po' difficile, ma non impossibile. Utilizzando la funzionalità di reflection di Java, è possibile ottenere le annotazioni che vengono applicate a una classe, metodo o campo, nonché eventuali dati inseriti in tale annotazione. Ad esempio, si consideri la seguente annotazione semplice:

@Retention(RetentionPolicy.RUNTIME)

pubblica @interface () {autore

String value();

}

Applicato a una classe in questo modo:

@Author ("John Doe")

public class MyClass {...

È possibile ottenere le informazioni sull'autore con il codice riportato di seguito:

finale autore autore = MyClass.class.getAnnotation(Author.class);

System.out.println(Author.Value());