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

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more

Top comments (0)

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up