Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Java

Anotações em Java Explicadas: Tipos, Posicionamento e Exemplos Práticos

Anotações em Java Explicadas

Descubra o que são anotações Java, como são categorizadas e como aplicá-las efetivamente com exemplos claros do mundo real.

Anotações são metadados embutidos no código fonte que transmitem informação adicional ao compilador e, quando necessário, a sistemas em tempo de execução. Elas não se tornam parte do bytecode executado, mas podem influenciar compilação, geração de código e reflection.

Anotações sempre começam com o símbolo @. A sintaxe mais comum é:

@NomeAnotacao

A Anotação @Override em Ação

A anotação @Override sinaliza que um método tem intenção de sobrescrever método de superclasse. Embora não obrigatória, usá-la permite que o compilador sinalize incompatibilidades como assinaturas incorretas.

Exemplo 1: Anotação @Override

class Animal { public void exibirInfo() { System.out.println("Sou um animal."); } } class Cachorro extends Animal { @Override public void exibirInfo() { System.out.println("Sou um cachorro."); } } class Main { public static void main(String[] args) { Cachorro c1 = new Cachorro(); c1.exibirInfo(); } } 

Saída

Sou um cachorro. 

Neste exemplo, exibirInfo() existe em tanto Animal quanto Cachorro. O método sobrescrito em Cachorro é executado, demonstrando polimorfismo.


Formatos de Anotação

Anotações podem incluir membros (atributos). São agrupadas em três categorias principais:

1. Anotações Marcadoras (Marker Annotations)

Estas não contêm elementos e são usadas apenas como flags. Parênteses são opcionais.

@NomeAnotacao

2. Anotações de Elemento Único (Single-Element Annotations)

Contêm um elemento, convencionalmente chamado value. Quando apenas um elemento está presente, seu nome pode ser omitido.

@NomeAnotacao("valorElemento")

3. Anotações Multi-Elemento (Multi-Element Annotations)

Incluem vários elementos, separados por vírgulas.

@NomeAnotacao(elemento1 = "valor1", elemento2 = "valor2")

Onde Posicionar Anotações

Anotações podem preceder qualquer declaração: classes, métodos, campos, interfaces e mais. Desde Java 8, também podem anotar tipos.

1. Acima de Declarações

Posicionamento típico: diretamente acima da declaração alvo.

Exemplo 2: Anotação @SuppressWarnings

import java.util.*; class Main { @SuppressWarnings("unchecked") static void listaPalavras() { ArrayList listaPalavras = new ArrayList<>(); // Isto causa warning unchecked listaPalavras.add("programiz"); System.out.println("Lista palavras => " + listaPalavras); } public static void main(String args[]) { listaPalavras(); } } 

Saída

Lista palavras => [programiz] 

Sem @SuppressWarnings("unchecked"), o compilador emitiria warning sobre operações unchecked. O exemplo também demonstra como generics mitigam este warning:

ArrayList<String> listaPalavras = new ArrayList<>();

2. Anotações de Tipo (Java 8+)

Anotações de tipo permitem anotar qualquer ocorrência de tipo, melhorando análise estática e null-safety.

// Invocação de construtor new @Readonly ArrayList<>(); // Definição de tipo @NonNull String str; @NonNull List<String> novaLista; List<@NonNull String> novaLista; // Type cast novaStr = (@NonNull String) str; // Extends/implements class Aviso extends @Localizada Mensagem // Cláusula throws public String lerMetodo() throws @Localizada IOException 

Estas anotações capacitam ferramentas a impor verificações de tipo mais fortes e prevenir erros de runtime como NullPointerException.


Tipos de Anotações

  1. Anotações Predefinidas (Predefined Annotations)
    • @Deprecated
    • @Override
    • @SuppressWarnings
    • @SafeVarargs
    • @FunctionalInterface
  2. Meta-Anotações (Meta-Annotations)
    • @Retention
    • @Documented
    • @Target
    • @Inherited
    • @Repeatable
  3. Anotações Customizadas (Custom Annotations)

    Defina anotações específicas de domínio para seus projetos. Consulte o tutorial Java Annotation Types para orientação.


Usos Práticos de Anotações

Java

  1. Dominando Operadores Java: Tipos, Sintaxe e Exemplos Práticos
  2. Comentários em Java: Tipos, Uso e Boas Práticas
  3. Dominando if…else em Java: Controle de Fluxo Explicado
  4. Dominando o Loop for Aprimorado em Java: Sintaxe, Exemplos e Boas Práticas
  5. Dominando Strings em Java: Criação, Métodos e Boas Práticas
  6. Dominando Interfaces em Java: Conceitos, Implementação e Boas Práticas
  7. Dominando Classes Internas Anônimas em Java: Definição, Sintaxe e Exemplos Práticos
  8. Dominando Try-With-Resources em Java: Gerenciamento Automático de Recursos Explicado
  9. Asserções em Java: Guia Prático para Detectar Bugs e Garantir Confiabilidade do Código
  10. Entendendo o Java Vector: Uso, Recursos e Comparação com ArrayList