JavaRush /Java Blog /Random-IT /Annotazioni. Prima parte, un po' noiosa

Annotazioni. Prima parte, un po' noiosa

Pubblicato nel gruppo Random-IT
Prima parte. Ho scritto molto brevemente sulle annotazioni con i tipi SOURCE e CLASS. Vale la pena leggerlo per non perdersi nella seconda parte e iniziare a “fraintendere” ancora un po' =) Qui ci sarà sicuramente almeno una parola che conosci!
Annotazioni.  Prima parte, un po' noiosa - 1
La prima volta che li ho visti nei problemi qui, in qualche modo non li ho notati. Beh, Override è uscito, è stato scritto da IDEA, quindi dovrebbe essere così. Col tempo, mi sono reso conto che tutto è molto più profondo. Mentre studi, le annotazioni sembrano qualcosa di inutile, ma necessario. Non sai perché lo stanno facendo. Penso di aver letto un paio di articoli, dicevano "quanto è bello che ora abbiamo le annotazioni, tutto è diventato così semplice". Ma non sapevo com'era prima e non capivo che ora fosse più facile. Ora lo so e voglio raccontarvelo un po'. Esistono 3 tipi di annotazioni (RetentionPolicy):
  • FONTE : annotazioni del compilatore
  • CLASSE : i dati dell'annotazione verranno scritti nel bytecode ma non saranno disponibili durante l'operazione. Scrivono che molte annotazioni nella libreria standard utilizzano questo tipo e ora lo mantengono a causa della compatibilità con le versioni precedenti. Utilizzato per compiti molto specifici.
  • Domande e risposte su StackOverflow
  • RUNTIME – il più popolare, utilizzato mentre il codice è in esecuzione.
Poiché parte dell'articolo è stata occupata dall'introduzione, scriverò qui delle annotazioni FONTE e CLASSE. Ecco gli abstract che ho trovato (grazie al problema 3607). Non scrivo di runtime, ce ne sono troppi e non è questo l’argomento dell’articolo. FONTE:
  • java/lang/annotation/Native.class;
  • java/lang/SuppressWarnings.class
  • javax/annotation/Generated.class
  • ,java/lang/Override.class
CLASSE: Non so perché siano necessarie le annotazioni con tipo CLASS. Non sono riuscito a trovare la documentazione per le annotazioni esistenti, quindi penso che possiamo semplicemente lasciarci alle spalle questo bagaglio. Ma se lo trovi, condividilo. Annotazioni FONTE:
  1. Nativo : una variabile sotto questa annotazione può fare riferimento al codice nativo;

  2. SuppressWarnings : sopprime vari avvisi del compilatore;

  3. Generato : contrassegna il codice sorgente che è stato generato;

  4. Override : controlla l'override del metodo.
Più dettagli:
Annotazioni.  Prima parte, un po' noiosa - 2
Nativo : mai visto e mai usato. Penso che questa sia un'annotazione piuttosto rara, perché... lo usano se hanno bisogno di eseguire codice in un'altra lingua "nativa". Ho cercato di trovare un chiaro riferimento a lei, ma non ci sono riuscito.
Annotazioni.  Prima parte, un po' noiosa - 3
SuppressWarnings - spesso utilizzato nella forma @SuppressWarnings("non selezionato"). Utilizzato per eliminare gli avvisi di cui sei a conoscenza. L'esempio precedente elimina gli avvisi relativi al cast di tipi non controllati. Ancora una volta, l'ho riscontrato solo in questa forma e utilizzo.
Annotazioni.  Prima parte, un po' noiosa - 4
Generato : l'ho trovato ora quando l'attività richiede di generare classi da file xsd. Queste 3 annotazioni sono piuttosto specifiche e molto probabilmente non ti interessano al momento. Descriverò l'ultimo.
Annotazioni.  Prima parte, un po' noiosa - 5
Override : lo usi sempre e fa una cosa molto utile. È facile commettere un errore quando si sovrascrive un metodo, a meno che IDEA non lo faccia. Ci sono errori di battitura o semplicemente errori. Questa annotazione garantirà che il metodo nella classe genitore sia lo stesso del nostro metodo (etichettato). Questo ci garantisce che il metodo verrà sovrascritto e non aggiunto. Durante il refactoring del codice, il metodo può essere rimosso o modificato. Ancora una volta, l'annotazione ti indicherà l'errore. Senza di esso, il nostro metodo sarebbe semplicemente completo.
Annotazioni.  Prima parte, un po' noiosa - 6
Noioso? Direi di sì, non c'è molto di utile da togliere da questo articolo. Quasi tutto in esso (90%) è una storia su qualcosa che non utilizzerai, o che utilizzerai, ma molto raramente. Il restante 10% è un saluto e una descrizione dell'annotazione Override, che a prima vista è inutile. Bene, penso che la seconda parte dell'articolo sarà più interessante. Ci saranno annotazioni RUNTIME e interagiranno con il codice in tempo reale e creeranno magia nera. Annotazioni. Seconda parte. Lombok.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION