DEV Community

FUNDAMENTOS JAVA
FUNDAMENTOS JAVA

Posted on

1

Anotações (Metadados)

1. Conceito de Anotações

  • Definição: Informações complementares embutidas no arquivo-fonte, sem alterar as ações do programa.
  • Uso: Processadas por ferramentas de desenvolvimento, como geradores de código, compiladores e ferramentas de implantação.
  • Metadados: Termo associado às anotações, mas o uso de "anotação" é preferido.

2. Estrutura de uma Anotação

  • Criada com o símbolo @ seguido de interface.
  • Composta exclusivamente por declarações de métodos, que agem como campos.

Exemplo:

@interface MyAnno {
    String str();
    int val();
}

Enter fullscreen mode Exit fullscreen mode

3. Aplicação de Anotações
Sintaxe: Nome da anotação precedido por @, seguido de inicializações para seus membros.

Exemplo de uso:

@MyAnno(str = "Annotation Example", val = 100)
public static void myMeth() {
    // ...
}

Enter fullscreen mode Exit fullscreen mode

Tipos de Anotações:

  • Marcadoras: Não possuem parâmetros. Exemplo: @override.
  • Parametrizadas: Possuem valores atribuídos a seus membros. Exemplo: @MyAnno.

4. Anotações Internas de Uso Geral

  • @Retention: Especifica quanto tempo a anotação estará presente.
  • @Documented: Anotação marcadora para incluir uma anotação na documentação.
  • @Target: Define onde uma anotação pode ser usada.
  • @Inherited: Permite que uma anotação em uma superclasse seja herdada.
  • @override: Garante que um método realmente sobrepõe outro.
  • @deprecated: Marca elementos como obsoletos.
  • @SafeVarargs: Indica segurança em métodos com varargs.
  • @SuppressWarnings: Suprime avisos do compilador.
  • @FunctionalInterface: Marca uma interface como funcional (exatamente um método abstrato).

5. Exemplo com @deprecated
Marca uma classe e um método como obsoletos. Gera avisos ao compilar.

Exemplo de código:

@Deprecated
class MyClass {
    private String msg;

    MyClass(String m) {
        msg = m;
    }

    @Deprecated
    String getMsg() {
        return msg;
    }
}

public class AnnoDemo {
    public static void main(String[] args) {
        MyClass myObj = new MyClass("test");
        System.out.println(myObj.getMsg());
    }
}

Enter fullscreen mode Exit fullscreen mode

6. JDK 8: Novas Anotações
@Repeatable: Suporte para aplicar a mesma anotação mais de uma vez.
@Native: Marca campos de constantes acessados por código nativo.

Conclusão
Anotações são poderosas ferramentas que auxiliam no desenvolvimento e na documentação do código, com suporte extensivo para casos personalizados e específicos. Exemplos fornecidos ajudam a compreender seu funcionamento básico.

Image description

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay