Я пытаюсь вызвать метод с переменными аргументами, используя java-отражение. Вот класс, который принимает метод:Как вызвать метод с переменными аргументами в java с помощью отражения?
public class TestClass {
public void setParam(N ... n){
System.out.println("Calling set param...");
}
Вот код ссылающееся:
try {
Class<?> c = Class.forName("com.test.reflection.TestClass");
Method method = c.getMethod ("setParam", com.test.reflection.N[].class);
method.invoke(c, new com.test.reflection.N[]{});
Я получаю IllegalArgumentException в виде «неверное число аргументов» в последней строке, где я вызов invoke. Не уверен, что я делаю неправильно.
Любые указатели будут оценены.
- Благодаря
Пробовал это без приведения в '(Object)' - Я получаю то же исключение, что и вы. Так что просто добавьте актерский состав (и верните точку № 1), и все будет в порядке. – gorootde
Сразу же, я упустил приведение к объекту []. Благодаря тонну. – Shamik
@Shamik: если вы знаете, какой метод вы хотите назвать, можете избежать таких проблем, используя dp4j – simpatico