Primeira parte. Escrevi brevemente sobre anotações com os tipos SOURCE e CLASS. Vale a pena ler para não se perder na segunda parte e começar a “mal-entendido” um pouco mais =) Com certeza vai ter pelo menos uma palavra aqui que você conhece!
A primeira vez que os vi com problemas aqui, de alguma forma não os percebi. Bem, Override está no ar, foi escrito pela IDEA, então é assim que deveria ser. Com o tempo, percebi que tudo é muito mais profundo. Enquanto você estuda, as anotações parecem algo inútil, mas necessário. Você não sabe por que eles estão fazendo isso. Acho que li alguns artigos, eles diziam “que bom que agora temos anotações, tudo ficou tão simples”. Mas eu não sabia como era antes e não entendia que agora era mais fácil. Agora eu sei e quero contar um pouco para vocês. Existem 3 tipos de anotações (RetentionPolicy):
Nativo - nunca visto e nunca usado. Acho que esta é uma anotação bastante rara, porque ... eles o usam se precisarem executar código em outra linguagem “nativa”. Tentei encontrar uma referência clara a ela, mas não consegui.
SuppressWarnings - frequentemente usado no formato @SuppressWarnings("desmarcado"). Usado para suprimir avisos dos quais você tem conhecimento. O exemplo acima suprime avisos sobre a conversão de tipos não verificados. Novamente, só o encontrei nesta forma e uso.
Gerado - me deparei com isso agora, quando a tarefa exige que eu gere classes a partir de arquivos xsd. Essas três anotações são bastante específicas e provavelmente não são do seu interesse no momento. Vou descrever o último.
Substituir - você usa isso o tempo todo e faz uma coisa muito útil. É fácil cometer um erro ao substituir um método, a menos que o IDEA faça isso. Existem erros de digitação ou apenas erros. Esta anotação garantirá que o método na classe pai seja igual ao nosso método (rotulado). Isso nos garante que o método será substituído e não adicionado. Ao refatorar o código, o método pode ser removido ou alterado. Novamente, a anotação indicará o erro para você. Sem ele, nosso método simplesmente estaria concluído.
Tedioso? Eu diria que sim, não há muita coisa útil para tirar deste artigo. Quase tudo nele (90%) é uma história sobre algo que você não usará, ou usará, mas muito raramente. Os 10% restantes são olá e uma descrição da anotação Override, que à primeira vista é inútil. Bem, acho que a segunda parte do artigo será mais interessante. Haverá anotações RUNTIME, e elas interagem com o código em tempo real e criam magia negra. Anotações. Parte dois. Lombok.
- FONTE – anotações do compilador
- CLASSE – os dados da anotação serão gravados no bytecode, mas não estarão disponíveis durante a operação. Eles escrevem que muitas anotações na biblioteca padrão usam esse tipo e agora o mantêm por causa da compatibilidade com versões anteriores. Usado para tarefas muito específicas.
- Perguntas e respostas no StackOverflow
- RUNTIME – o mais popular, usado enquanto o código está em execução.
- java/lang/annotation/Native.class;
- java/lang/SuppressWarnings.class
- javax/anotação/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 – uma variável sob esta anotação pode referir-se ao código nativo;
- SuppressWarnings – suprime vários avisos do compilador;
- Gerado – marca o código fonte que foi gerado;
- Substituição – verifica a substituição do método.
GO TO FULL VERSION