"Ciao, Amico!"

"Ciao Rishi."

"Oggi ti darò un'introduzione più approfondita alle annotazioni."

"Come probabilmente già saprai, le annotazioni sono parole speciali che possono essere messe accanto a classi, campi, metodi e variabili."

"Sì. Li incontro molto spesso."

"A volte sono anche chiamati metadati . Il loro scopo principale è memorizzare informazioni aggiuntive specifiche su metodi, campi e classi."

"Per chi lo conservano?"

"Questa è un'ottima domanda."

"Le persone scrivono annotazioni, il che significa che qualcuno deve averne bisogno."

"Le annotazioni ti consentono di memorizzare informazioni aggiuntive sul codice e sugli elementi del programma, ma, formalmente, non fanno parte del codice."

"Le annotazioni possono essere utilizzate per generare XML, determinare se un metodo è deprecato, tenere traccia dei bug, ecc."

"Ecco un esempio di annotazioni nel codice:"

Esempio
@CatInfo(manager=Catmanager.class, unique=true)
class Cat
{
 @Name("Missy")
 private String name;

 @SuppressWarnings(value = "unchecked")
 void getUniqueCatName()
 {

 }
}

"Come puoi vedere, i dati possono essere memorizzati nelle annotazioni."

"Se un'annotazione ha un solo campo chiamato valore , il nome del campo può essere omesso:"

Esempio
@SuppressWarnings("unchecked")
void getUniqueCatName()
{

}

"Se non ci sono parametri tra parentesi, possono anche essere omessi:"

Esempio
@Override
void getUniqueCatName()
{

}

"È semplicissimo creare la tua annotazione. Dichiarare un'annotazione è quasi identico a dichiarare un'interfaccia."

Esempio
@interface CatManager
{
 Class manager();
 boolean unique();
 String name() default "Unknown Cat";
}

"Ci sono solo un paio di differenze."

"Per prima cosa, metti un segno «@» prima della parola interfaccia ."

"In secondo luogo, un'annotazione può avere valori predefiniti. Si utilizza la parola default per impostare i valori predefiniti . Vedere l'esempio precedente. Questi parametri sono facoltativi e possono essere omessi quando si aggiungono annotazioni."

"Ah. È tutto più facile di quanto pensassi. E li ho evitati come il Robo-diavolo evita l'acqua santa. Non è molto piacevole quando il codice ha un sacco di cose che non capisci del tutto."

"Oh, è un bene che tu me lo abbia ricordato: voglio dirti di più sulle annotazioni utilizzate dal compilatore."

"Ci sono solo 3 di queste annotazioni. Beh, tre finora."

@Deprecato.

"Puoi annotare una classe o un metodo con @Deprecated. Ciò farà sì che il compilatore emetta un avviso (un avviso non è un errore) e IntelliJ IDEA visualizzerà questo metodo come testo barrato. Qualcosa del genere  :

Esempio
Date date = new Date();
int year = date.getYear();

@Oltrepassare.

"È considerata una best practice aggiungere l'annotazione @Override ai metodi che si sovrascrivono."

"A cosa serve? IDEA non mostra già se un metodo è stato sovrascritto o meno?"

"Prima di tutto, c'è IDEA e poi c'è la sintassi Java."

"E in secondo luogo, ipoteticamente, potresti avere una situazione in cui il metodo di una classe base viene rinominato senza una corrispondente modifica al nome del metodo nella sottoclasse. Il programma non funzionerà come previsto, ma nessuno se ne accorgerà. Questa annotazione è stata inventata per evitare che si verifichino queste situazioni:"

Esempio
@Override
void getUniqueCatName()
{

}

@SuppressWarnings.

"A volte il compilatore mostra molti avvisi. E a volte conosciamo i «problemi» e scegliamo deliberatamente di utilizzare il codice corrispondente che li crea. Puoi usare questa annotazione per nascondere alcuni di questi avvisi."

"Un programmatore può utilizzare l' annotazione @SuppressWarnings per dire al compilatore: «Non mostrare un avviso per questo errore: è intenzionale.» Per esempio:"

Esempio
@SuppressWarnings("unchecked")
void getUniqueCatName()
{

}

"Fatto."

"Mi sto un po' stancando. Vado a bagnarmi la gola riarsa. Continuiamo dopo una pausa, ok?"

"Sicuro."