Olá a todos…
Estou c um problema…
Defini uma anotação assim:
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.PARAMETER)
public @interface RequiredAction {
public String action();
}
e outra assim:
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface SecureModule {
public String name();
public String requiredAction();
}
e defini um método assim:
@SecureModule(name="Administracao", requiredAction="execution")
public void removeUsuario(@RequiredAction(action = "write")
String usuario) {
System.out.println("Finalmente eu posso fazer isso.");
System.out.println("Removendo usuário: "+usuario);
}
e p pegar a anotação do método eu faço assim:
Class classe = obj.getClass();
Method[] methods = classe.getDeclaredMethods();
if (methods[0].is.isAnnotationPresent(SecureModule.class)) {
String nameModule = methods[0].getAnnotation(SecureModule.class).name();
String actionModule = methods[0].getAnnotation(SecureModule.class).requiredAction();
}
Bom oq eu quero fazer e não estou conseguindo é fazer algo parecido mas agora para os atributod que eu passo p o método … q nesse quaso é a String usuario, q está anotada c @RequiredAction(action = “write”).
Eu quero pegar o parametro, verificar se ele está anotado e depois pegar o valor dos atributos da anotação q nesse quaso é a public String action() q recebe write.
O grande problema é q não existe nenhum getDeclaredParameter() e nem um tipo de dado do tipo Parameter, só Field, Method etc…
Alguém saberia como resolver isso…estou me matando e nada…
Até +