Java: Usando pré-definidas Anotações
Os tipos e conteúdo de anotações em Java, como comentários, são limitadas apenas por sua imaginação. Sim, Java fornece algumas anotações predefinidas, mas você também pode criar anotações que descrevem os elementos do programa em qualquer maneira que você quer. A idéia é que você descreve como uma anotação deve funcionar, fornecer dados para ele, e o compilador cuida do resto.
Anotações sempre começam com o símbolo @ (arroba). Então, quando você vê @Documented, você sabe que você está vendo uma anotação. As seções a seguir lhe dizer mais sobre as anotações predefinidos e personalizados.
Uma anotação predefinida é aquela que existe como parte de Java. Você encontra essas anotações no pacote java.lang.annotation. Para usá-los, você adiciona java.lang.annotation importação. * - Para o início da sua aplicação. A lista a seguir fornece uma visão geral das anotações predefinidas:
@deprecated: Às vezes, um elemento - uma classe, método, campo ou outro recurso de programação - é substituída por um elemento mais recente ou simplesmente não é mais necessário.
Quando isso acontece, você marca o elemento como obsoleto para que os desenvolvedores sabem que precisam atualizar seu código e parar de usar esse elemento particular. Adicionando a anotação @deprecated gera o estado obsoleto do elemento na documentação gerada pela Javadoc (Um utilitário que é usado para criar a documentação automaticamente com base no conteúdo de seus arquivos de código).
@Documented: Toda vez que você marcar um elemento como documentado, as saídas de utilidade Javadoc lo para o arquivo de documentação ele cria com base no conteúdo do arquivo de origem.
@FunctionalInterface: Especifica que a interface é uma interface funcional utilizada para as classes anônimos e expressões lambda.
@Inherited: Classes podem herdar características de uma classe pai. Por padrão, isso inclui funcionalidades como métodos, mas não inclui as anotações da classe pai. Usando a anotação @Inherited diz Java para aplicar as anotações da classe pai para a subclasse também.
@Override: Especifica que um elemento de classe criança está substituindo um elemento superclasse (classe pai). Se essa anotação está presente e a superclasse carece de um elemento com o mesmo nome, o compilador gera um erro para que você sabe que algo está errado com a substituição.
@Repeatable: A maioria das anotações são aplicadas apenas uma vez para um determinado elemento. No entanto, em alguns casos, você precisa aplicar a anotação mais de uma vez. Esta anotação informa Java que é aceitável para aplicar a anotação de um elemento em particular mais do que uma vez.
@Retention: Uma anotação pode afetar apenas a fonte code-o código fonte e compiler- ou o código-fonte, compilador e JVM. Esta anotação define o efeito que outra anotação deve ter. Por exemplo, você pode precisar apenas uma anotação específicos de documentação para afetar o código fonte e compilador.
@SafeVarargs: É possível realizar operações que não são seguros para os argumentos passados para um método ou construtor. Esta anotação diz que o código não faz nada inseguro e, portanto, não requer todas as verificações habituais. Reduzir o número de cheques faz com que o aplicativo executar mais rápido.
@SuppressWarnings: O compilador Java gera uma riqueza de avisos para sinalizar potenciais problemas. Por exemplo, se você tentar usar um método obsoleto em seu código, o compilador emite uma mensagem de aviso sobre isso. Esta anotação informa o compilador não para de saída tais alertas para o elemento afetado.
@Target: Quando você cria suas próprias anotações, ele pode ser útil para dizer ao compilador que essas anotações devem afetar somente um tipo de elemento específico. Por exemplo, se você criar um bloco de autor que se destina a aparecer apenas no nível do pacote, então você pode limitar a anotação apenas que tipo de elemento usando a anotação @Target.