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!
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):
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.
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.
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.
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.
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.
- 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.
- java/lang/annotation/Native.class;
- java/lang/SuppressWarnings.class
- javax/annotation/Generated.class
- ,java/lang/Override.class
- com/sun/istack/internal/Nullable.class
- com/sun/istack/internal/NotNull.class
- com/sun/istack/internal/Interned.class
- Nativo : una variabile sotto questa annotazione può fare riferimento al codice nativo;
- SuppressWarnings : sopprime vari avvisi del compilatore;
- Generato : contrassegna il codice sorgente che è stato generato;
- Override : controlla l'override del metodo.
GO TO FULL VERSION