Como criar uma annotation e fazer com que uma classe pegue as informações dela

Olá pessoal do GUJ. eu estou com o seguinte problema: quero criar uma função simples, para apenas pegar os campos de uma annotation qualquer. o problema é que eu não to conseguindo criar a annotation, talvez não esteja entendendo bem como usa-la. e aqui eu tenho os 2 códigos q eu to tentando fazer. por favor me ajudem.

[code] package prog1;

import java.lang.reflect.*;

 public class TakeField {
 
   public static void main(String args[]) {
         try {
             Class cls = Class.forName("java.lang.String");
             
             Field listaCampo[] = cls.getDeclaredFields();
                 for (int i = 0; i < listaCampo.length; i++) {
                  Field fld = listaCampo[i];
                  System.out.println("nome campo = " + fld.getName());
                  System.out.println("membro da classe = " + fld.getDeclaringClass());
                  System.out.println("tipo = " + fld.getType());
                              }                   
             }catch (Throwable e) {
               System.err.println(e);
     }
  }
} [/code]  .. essa daqui é pra pegar os campos ... porém ta incompleta

e aqui eu estava tentando criar uma annotation, mas não sei como completa-la

package prog1;

import prog1.TakeField;
import java.lang.reflect.*;
import java.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME)
@Taget(ElementType.FIELD)

public @interface Information {
	Class type();
	String method();
	
	Field fdl;
	

}

ainda tem o detalhe de no “target” ta a linhazinha vermelha com algum erro. ajuda ae por favor ! é meio urgente… .está valendo 1 coca-cola ! hauihahaihauhauiaiuha …

agradeço antecipadamente !

Amigo, você está com o nariz entupido, ou está mexendo muito com cravos de defunto (nome cientìfico “Tagetes”)?

Veja meu método que faz isso que tu quer:

/** * Verifica um método, em busca de anotações tratadas pelo framework * @param m o método * @return um objeto do tipo IsAction, preenchido com os respectivos valores das anotações * @return null em caso do método não possuir nenhuma anotação interpretada pelo SwingMVC */ private IsAction hasAction(Method m) { if (m.isAnnotationPresent(IsAction.class)) { IsAction isAction = m.getAnnotation(IsAction.class); return isAction; } return null; }

acho que nem precisa dizer mais nada, ou precisa? []s :slight_smile:

PS: IsAction é a interface de anotação.

ahaihaihauihauiha … é verdade ! … me desculpa =D … é a pressa ! foi mal =) … ahauha …

[quote=thingol]Amigo, você está com o nariz entupido, ou está mexendo muito com cravos de defunto (nome cientìfico “Tagetes”)?

[/quote]

comeu o ‘r’

@Target

peerless => beleza cara. seu método é bonito. porém eu tenho que fazer meio que na mão, tipo. eu preciso fazer dessa forma , tanto para aprender como para poder explicar para pessoa que está exigindo de mim nesse momento ! =D