Boa tarde, pessoas!
Eu estou tentando usar o jar paranamer para recuperar os nomes dos parâmetros de um método de uma classe minha - Estou usando-o em um pequeno projeto meu.
Mas, testando a paranamer - http://paranamer.codehaus.org/ - não retorna o nome do parâmetro de um método! Aqui está a classe de domínio - que é o método com o parâmetro que eu estou tentando retornar o nome:
Classe que contém o método que quero retornar o parametro:
package domain;
public class DomainTest {
private String attribute1;
private int attribute2;
public DomainTest() {
}
public DomainTest(String attribute1, int attribute2) {
super();
this.attribute1 = attribute1;
this.attribute2 = attribute2;
}
public void someMethod(String paramTest) {
System.out.println("METHOD IN DOMAIN CLASS");
}
public String getAttribute1() {
return attribute1;
}
public int getAttribute2() {
return attribute2;
}
}
Classe que tenta retornar o nome do parametro do método da classe acima:
package Testes;
import java.lang.reflect.Method;
import com.thoughtworks.paranamer.CachingParanamer;
import com.thoughtworks.paranamer.Paranamer;
import domain.DomainTest;
public class Test {
public static void main(String[] args) {
Class<?> myClass = DomainTest.class;
System.out.println("CLASS NAME " + myClass.getCanonicalName());
String[] ParameterNames = null;
Paranamer paranamer = new CachingParanamer();
for (Method method : myClass.getDeclaredMethods()) {
System.out.println("METHOD NAME: " + method.getName());
ParameterNames = paranamer.lookupParameterNames(method, false);
if (ParameterNames.length > 0) {
System.out.println("OK!");
} else {
System.out.println("NO!");
}
}
System.out.println("TESTING!");
for (int i = 0; i < ParameterNames.length; i++) {
System.out.println("PARAMETER NAME " + ParameterNames[i]);
}
}
}
Usando o jar Paranamer, seguindo as dicas de uns tópicos do stackoverflow.com , era pra estar retornando o nome dos parametros do método someMethod(), mas não está! Já estou setando o compilador do eclipse IDE pra colocar as informações de debug nos .class, mas mesmo assim não funciona!
Alguém já mexeu com isso, ou conseguiu obter o mesmo resultado com algo semelhante?
Muito obrigado desde já, abraços!