Я пытаюсь использовать банку паранамера для получения имен параметров моих классов - я использую его в одном маленьком проекте.Получение имен параметров с помощью баннера Paranamer
Но, тестирование паранамера - http://paranamer.codehaus.org/ - оно не возвращает имя параметра одного метода! Вот класс домен - где метод с параметром, который я пытаюсь вернуть имя:
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;
}
}
Метод «SomeMethod».
А вот класс пытается вернуть имена параметров:
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]);
}
}
}
В другой теме другого пользователя здесь, люди говорили, что класс paranamer только может получить имена В параметре с отладочной информацией, установленной в на - используя -g в javac или установив его в java-компилятор в eclipse IDE.
Я сделал это и все еще не работал, не возвращая имя параметра метода someMethod выше. Я использую все зависимости, перечисленные здесь: http://grepcode.com/snapshot/repo1.maven.org/maven2/com.thoughtworks.paranamer/paranamer/2.5.2/
Может ли кто-нибудь помочь мне в этом? Большое спасибо!
Всего ХА: Доступ к именам параметров с помощью отражения будет функцией в [Java 8] (http://openjdk.java.net/projects/jdk8/features#118). – Jeffrey
@ Джеффри, они сказали это и на 7. Баннер паранамера действительно работает, но мне не хватает чего-то, чтобы это сработало. Большое спасибо! –
Или вы можете просто комментировать ваши методы и параметры. Не DRY, но работает хорошо. –