CodeGym /Java Blog /Random-IT /Annotazioni. Parte 1 — un po' noiosa
John Squirrels
Livello 41
San Francisco

Annotazioni. Parte 1 — un po' noiosa

Pubblicato nel gruppo Random-IT
Parte 1. Ho scritto molto brevemente sulle annotazioni del tipo SOURCE e CLASS. Vale la pena leggerlo, così da evitare di perdersi nella seconda parte e ampliare un po' il tuo "malinteso" =) Prometto che ci sarà sicuramente almeno una parola che conosci! Annotazioni.  Parte 1 — un po' noiosa - 1 La prima volta che ho visto le annotazioni nelle attività qui in qualche modo non ho prestato loro molta attenzione. C'è @Override qua e là, ma IDEA lo aggiunge, quindi ho pensato che dovesse essere così. Nel tempo, ho capito che tutto è molto più profondo. Mentre studi, le annotazioni possono sembrare in qualche modo inutili ma necessarie. Non sai perché esistono o cosa fanno. Hai letto un paio di articoli che dicevano: "è così bello che ora abbiamo le annotazioni, tutto è diventato così semplice". Ma non sapevo come stessero le cose prima, e non capivo che ora le cose sono più facili. Ora so e voglio condividere un po'. Esistono 3 tipi di annotazioni (RetentionPolicy):
  • SOURCE — Annotazioni per il compilatore
  • CLASS — Le informazioni dall'annotazione verranno scritte in bytecode ma non disponibili in fase di esecuzione. Dicono che la libreria standard abbia molte annotazioni di questo tipo, che ora vengono mantenute per compatibilità con le versioni precedenti. Questo è usato per compiti molto specifici.
  • Domande e risposte su StackOverflow
  • RUNTIME — Queste annotazioni sono le più popolari. Vengono utilizzati durante l'esecuzione del codice.
L'introduzione occupava parte dell'articolo, quindi scriverò qui delle annotazioni SOURCE e CLASS. Queste sono le annotazioni che ho trovato (grazie all'attività 3607). Non affronterò le annotazioni di runtime: ce ne sono troppe e non sono l'argomento di questo articolo. FONTE:
  • java/lang/annotation/Native.class;
  • java/lang/SuppressWarnings.class
  • javax/annotation/Generated.class
  • java/lang/Override.class
CLASSE: Non so perché le annotazioni CLASS siano necessarie. La documentazione per le annotazioni esistenti non si trova da nessuna parte, quindi penso che tu possa semplicemente lasciarti alle spalle questo bagaglio. Ma se lo trovi, per favore condividi. FONTE annotazioni:
  1. Nativo : una variabile con questa annotazione può fare riferimento al codice nativo;
  2. SuppressWarnings — Questa annotazione sopprime vari avvisi del compilatore;
  3. Generato : questa annotazione contrassegna il codice sorgente che è stato generato;
  4. Override : questa annotazione controlla le sostituzioni del metodo.
Per maggiori informazioni:

@Native

Nativo : non l'ho mai visto e non l'ho mai usato. Penso che questa sia un'annotazione piuttosto rara, perché viene utilizzata quando è necessario eseguire codice in un'altra lingua "nativa". Ho provato e non sono riuscito a trovare una chiara menzione di esso.

@SuppressWarnings

SuppressWarnings — Questa annotazione viene spesso utilizzata in questo modo: @SuppressWarnings("unchecked"). Viene utilizzato per sopprimere gli avvisi di cui si è già a conoscenza. L'esempio precedente elimina gli avvisi relativi alle conversioni di tipo non controllate. Ancora una volta, questo è l'unico utilizzo che ho riscontrato.

@Generato

Generato : mi imbatto in questa annotazione in questo momento a causa di un compito in cui devo generare classi da file XSD. Queste 3 annotazioni sono abbastanza specifiche e molto probabilmente non ti interessano al momento. Descriverò l'ultimo.

@Oltrepassare

Override : lo usi costantemente e fa qualcosa di molto utile. Quando si esegue l'override di un metodo, è facile commettere un errore senza l'aiuto di IDEA. Che si tratti di errori di battitura o semplici errori, gli errori accadono. Questa annotazione assicurerà che il metodo nella classe genitore corrisponda al nostro metodo (annotato). Ciò garantisce che il metodo venga sovrascritto anziché aggiunto. Durante il refactoring del codice, il metodo padre può essere rimosso o modificato. Ancora una volta, questa annotazione indicherà un errore. Senza di esso, il nostro metodo verrebbe semplicemente aggiunto. Noioso? Direi di si. Non c'è molto utile da raccogliere da questo articolo. Quasi tutto (90%) qui descrive qualcosa che non userai mai o solo molto raramente. Il restante 10% sta salutando e descrivendo l'annotazione @Override, che a prima vista è inutile. Detto questo, penso che la seconda parte dell'articolo sarà più interessante. Verranno discusse le annotazioni RUNTIME: interagiscono con il codice durante l'esecuzione e fanno magia nera. Annotazioni. Parte 2. Lombok
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION