Ler Annotation de uma classe

4 respostas
H

Pessoal,

construí uma classe entidade da seguinte forma:

public class Pessoa {

   @PrimaryKey
    private String nome;
    
    private int idade;
    
    private char sexo;
    
    private String endereco;
   
}

daí escrevi a interface para o Annotation

public @interface PrimaryKey {
}

Agora eu quero ler a classe Pessoa capturando o Annotation @PrimaryKey

tentei das seguintes formas e não obtive sucesso:

Pessoa.class.getDeclaredAnnotations();

Pessoa.class.getAnnotations();

Pessoa.class.getDeclaredFields()[0].getAnnotations();
Pessoa.class.getDeclaredFields()[1].getAnnotations();
Pessoa.class.getDeclaredFields()[2].getAnnotations();

Pessoa.class.getDeclaredFields()[0].getDeclaredAnnotations();
Pessoa.class.getDeclaredFields()[1].getDeclaredAnnotations();
Pessoa.class.getDeclaredFields()[2].getDeclaredAnnotations();

Afinal, como eu consigo capturar o Annotation @PrimaryKey da classe Pessoa?

[color=red][size=9]O coodenador chato pede para você utilizar as tags de código quando postar um código.[/size][/color]

4 Respostas

urubatan

tenta definir a retenção da tua anotação para runtime
é só colocar @Retention(RUNTIME) na tua anotação.

H

Funcionou!

só gostaria de deixar anotado nesse tópico a forma de aplicação:

import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Retention;

@Retention(RUNTIME)
public @interface PrimaryKey
{

}

Obrigado pela ajuda!

R

Esta dúvida atendeu em parte a minha também.
Porém, por algum motivo minha classe RetentionPolicy está com as constantes comentadas.
Sabem porque?
Abraços.

R

Ok pessoal.
Vacilo meu. :wink:

Criado 31 de maio de 2006
Ultima resposta 24 de ago. de 2007
Respostas 4
Participantes 3