[MÚSICA] Claquete! [BIP] Olá a todos, meu nome é Eduardo Guerra. Esse é o curso de Desenvolvimento Ágil com Java Avançado. Hoje vamos falar sobre anotações de código. Eu vou mostrar para vocês como criar anotações de código e como consumir essas anotações através da reflexão. Então, anotações que é uma feature que não era, que entrou depois no Java, entrou aí no Java 5 já está aí à certo tempo e é bastante utilizado aí pelas principais APIs de aplicações cooperativas. Certo? Então, a questão é que nem sempre, a gente viu ali na reflexão, que a gente às vezes procura método, por uma classe, usando o nome ou outras informações. E nem sempre essas informações elas são suficientes para você achar aquilo que você quer. Então, eu quero todos os métodos por exemplo, que modificam alguma coisa dentro dessa classe. Como você vai saber isso? Pode ter nome, métodos com diferentes nomes, diferentes, não tem nada ali nos metadados, que você pode recuperar pelas anotações, que vai te dar essa informação. Então, qual é que é a ideia? As anotações, elas é como se fossem uns posts its que você vai pregado ali no código, bota aqui, bota ali, certo, para incluir informações adicionais sobre aqueles elementos de código. Pode ser método, pode ser atributo, pode ser a própria classe. Então tem vários locais onde dá para inserir aí as anotações. Então a ideia das anotações é justamente criar, pegar essas informações que a gente já tem e complementar ela com informações mais específicas para aquilo que a gente precisa. Para criar uma anotação, a gente usa esse arroba interface. Então, quando você criar public interface, vai ser uma interface, se você botar esse arroba interface, você vai estar criando uma annotation. Então, o que é importante a gente saber? A gente tem que colocar esse Retention(RUNTIME) que é para a gente poder consumir essas anotações tempo de execução. Tem outras alternativas, por exemplo que, se você não colocar nada por exemplo, a anotação vai ficar somente no código e na hora que ele for compilado, aquilo não vai ser levado para a frente. E é importante mencionar também, que é possível adicionar atributos à anotação. Então, no caso aqui, eu estou adicionando o atributo value do tipo String. Então, a partir do momento que eu crio essa anotação, eu passo a poder adicionar ela elementos de código. Então eu uso assim, arroba o nome da anotação e aí eu tenho que passar os os atributos ali. Lembrando que eu só posso omitir dessa forma aqui, quando o nome do atributo é value, se for outro nome eu tenho que colocar o nome do atributo igual ao valor. E aí, como é que eu faço? É bem fácil, qualquer membro ali, seja método, seja uma classe, seja atributo, qualquer representação da API de reflexação, que possa ter uma anotação, ele tem esses métodos, que é o getAnnotation, que permite que você pegue uma anotação de uma classe específica. Às vezes você está procurando ela. E tem o getAnnotations, onde você pega todas as anotações que estão presentes naquele elemento. Então, às vezes quando você quer procurar alguma coisa, que você não sabe exatamente, o getAnnotations é interessante. E tem o isAnnotationPresent. Opa. Tem o isAnnotationPresent, que é esse aí baixo, que ele mostra, ele te diz se a anotação está presente ou não. Às vezes a anotação não tem muita informação, o que você quer saber é se ela está presente ou não. Então aí a gente usa esse último método aí. E voltando aí à preguiça. O que é que é a preguiça? A anotação ela é meio preguiçosa, porquê? Porque ela não faz nada, ela só fica ali esperando. Então, muita gente às vezes tem essa ideia, que quando você adiciona uma anotação, você está adicionando comportamento à classe. Isso não é verdade. A anotação ela é simplesmente metadado, é uma informação mesmo. Se você, se alguém não for ali e ler aquilo e pegar aquela informação, a anotação, na verdade, não serve para nada, só para acrescentar aquela informação ali no código. Então, a anotação ela, lembra da preguicinha, que fica ali tranquila, só esperando, a anotação é isso daí, ela não acrescenta comportamento. Ela fica ali só esperando que alguém consuma ela. Certo? Então é isso, espero que vocês tenham entendido o que é que é uma anotação. Como é que a gente cria a nossa anotação, como é que a gente recupera elas, utilizando a reflexão. Muito obrigado e até à próxima aula! [MÚSICA] [MÚSICA]