CodeGym /Blogue Java /Random-PT /Anotações. Parte 1 - um pouco chato
John Squirrels
Nível 41
San Francisco

Anotações. Parte 1 - um pouco chato

Publicado no grupo Random-PT
Parte 1. Escrevi brevemente sobre anotações do tipo SOURCE e CLASS. Vale a pena ler, para não se perder na segunda parte e expandir um pouco o seu "mal-entendido" =) Prometo que com certeza haverá pelo menos uma palavra que você conhece! Anotações.  Parte 1 — um pouco chata - 1 A primeira vez que vi anotações nas tarefas aqui, de alguma forma não prestei muita atenção a elas. Há @Override aqui e ali, mas o IDEA adiciona isso, então achei que deveria ser assim. Com o tempo, percebi que tudo é muito mais profundo. Conforme você estuda, as anotações podem parecer um tanto inúteis, mas necessárias. Você não sabe por que eles existem ou o que eles fazem. Você leu alguns artigos que diziam: "é tão bom termos anotações agora, tudo se tornou tão simples". Mas eu não sabia como as coisas eram antes e não entendia que as coisas são mais fáceis agora. Agora eu sei e quero compartilhar um pouco. Existem 3 tipos de anotações (RetentionPolicy):
  • SOURCE — Anotações para o compilador
  • CLASSE — As informações da anotação serão escritas em bytecode, mas não estarão disponíveis em tempo de execução. Eles dizem que a biblioteca padrão tem muitas anotações desse tipo, que agora são mantidas para compatibilidade com versões anteriores. Isso é usado para tarefas muito específicas.
  • Perguntas e respostas no StackOverflow
  • RUNTIME — Essas anotações são as mais populares. Eles são usados ​​enquanto o código está sendo executado.
A introdução ocupou parte do artigo, então vou escrever aqui sobre as anotações SOURCE e CLASS. Estas são as anotações que pude encontrar (graças à Tarefa 3607). Não abordarei anotações de tempo de execução — há muitas delas e não são o assunto deste artigo. FONTE:
  • java/lang/annotation/Native.class;
  • java/lang/SuppressWarnings.class
  • javax/annotation/Generated.class
  • java/lang/Override.class
AULA: Não sei por que as anotações CLASS são necessárias. A documentação para as anotações existentes não foi encontrada em nenhum lugar, então acho que você pode simplesmente deixar essa bagagem para trás. Mas se você encontrar, por favor, compartilhe. Anotações da FONTE:
  1. Nativo — Uma variável com esta anotação pode se referir ao código nativo;
  2. SuppressWarnings — Esta anotação suprime vários avisos do compilador;
  3. Gerado — Esta anotação marca o código-fonte que foi gerado;
  4. Substituir — Esta anotação verifica substituições de método.
Para maiores informações:

@Nativo

Nativo - nunca vi isso e nunca usei. Acho que essa é uma anotação bastante rara, porque é usada quando você precisa executar código em outro idioma "nativo". Eu tentei e não consegui encontrar uma menção clara disso.

@Suprimir avisos

SuppressWarnings — Esta anotação costuma ser usada assim: @SuppressWarnings("unchecked"). Ele é usado para suprimir avisos que você já conhece. O exemplo anterior suprime avisos sobre conversões de tipo não verificadas. Novamente, este é o único uso que encontrei.

@Generated

Gerado — Estou encontrando esta anotação agora devido a uma tarefa em que tenho que gerar classes a partir de arquivos XSD. Essas 3 anotações são bastante específicas e provavelmente desinteressantes para você no momento. Vou descrever o último.

@Sobrepor

Override - Você o usa constantemente e faz algo muito útil. Ao substituir um método, é fácil cometer um erro sem a ajuda do IDEA. Sejam erros de digitação ou erros simples, erros acontecem. Essa anotação garantirá que o método na classe pai corresponda ao nosso método (anotado). Isso garante que o método seja substituído em vez de adicionado. Ao refatorar o código, o método pai pode ser removido ou alterado. Novamente, esta anotação indicará um erro. Sem ele, nosso método simplesmente seria adicionado. Tedioso? Eu diria que sim. Não há muito o que aprender neste artigo. Quase tudo (90%) aqui descreve algo que você nunca usará ou usará muito raramente. Os 10% restantes estão dizendo olá e descrevendo a anotação @Override, que à primeira vista é inútil. Dito isto, acho que na segunda parte do artigo será mais interessante. Discutiremos anotações RUNTIME — elas interagem com o código durante a execução e fazem magia negra. Anotações. Parte 2. Lombok
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION