? Anotações Java , adicionados no Java 1.5 , pode adicionar informações extras sobre uma classe, método ou campo. Esta informação pode ser usada de várias maneiras , tais como detalhando como um programa deve ser executado , ou que métodos deve ser evitada por outros promotores . Dependendo de como as anotações foram originalmente codificadas , estas informações podem estar disponíveis apenas no código-fonte original , ao trabalhar com a classe compilada diretamente ou em tempo de execução por meio de reflexão. Quais são Anotações
Simplificando, uma anotação é um meio de acrescentar informações adicionais - também conhecido como metadados - para o seu programa sobre o item anotado. Esta informação pode ser tão simples quanto uma nota detalhando autoria ou algo tão complexo como associar um campo com uma coluna de banco de dados. As anotações podem ser manipulados em uma de três maneiras: por ficar apenas no código-fonte original , onde eles são geralmente apenas visível para os outros desenvolvedores , sendo compilado no bytecode , onde eles não estão disponíveis para o processamento em tempo de execução , mas estão disponíveis para programas que acessam os arquivos de classe , e que está sendo compilado por isso a informação é carregada em tempo de execução para que o programa em execução pode acessá-lo
Por Exigir Detalhes de anotação em tempo de execução
Como . ? um desenvolvedor pode indicar informações adicionais sobre um item, ter essa informação disponível em tempo de execução pode permitir que um programa para agir de forma diferente para esse item , sem necessariamente exigir essa informação para compilar (ou mesmo de função) . Por exemplo, considere uma anotação que associa um campo com uma coluna de banco de dados , talvez seria algo parecido com isto :
@ DBField ( " Nome" )
firstName private String ;
Durante a execução , o programa pode ler as informações e perceber que deveria preencher esse campo com base no conteúdo dessa coluna ( concedida, ela também precisa de tabela e linha de informação ) . Isso também permitiria ao usuário escrever , por exemplo , uma rotina de manipulação de dados genérico que depende de anotações e não precisa de muita especialização para cada classe.
Como Anotações Java são ignoradas
Como dito anteriormente, existem três maneiras para o compilador para lidar com uma anotação que vem através de código : por demolição (e deixando-o , assim, apenas no código) , por compilá-lo para o bytecode e compilando -o na bytecode com as informações necessárias para carregá-lo em tempo de execução . A segunda opção - compilá-lo para o bytecode ( sem carregá-lo em tempo de execução ) - é o padrão para todas as anotações , a menos que especificado de outra forma , uma anotação não estarão disponíveis em tempo de execução . No entanto , especificando o que é extremamente simples, se você tem acesso ao código-fonte da anotação . Basta adicionar uma anotação adicional para a definição de anotação:
@ Retention ( RetentionPolicy.RUNTIME )
public @ interface de MyAnnotation ...
usando a anotação em tempo de execução
Depois de assegurar a anotação está disponível em tempo de execução , usá-lo é extremamente simples. Supondo que você tenha uma anotação com o nome " Autor ", com um valor de string , você pode usar o código a seguir para ter certeza de que você tem acesso em tempo de execução para a anotação :
último Autor author = MyClass.class.getAnnotation ( Author. classe );
System.out.println ( author.value ());
neste caso, MyClass seria declarado o seguinte:
@ Autor ( " John Doe " )
public class MyClass ...
Quando você executa as linhas acima , você deve obter o valor para a anotação ( " John Doe " , neste caso) impresso no console .