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();
}
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() {
// ...
}
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());
}
}
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.
Top comments (0)