Я тестирую с помощью отражения Java и пытаюсь применить перегруженный метод к параметрам в соответствии с их типом.
Однако у меня есть NoSuchMethodException, хотя метод, который я пытался получить, является общедоступным.Это исключение по-прежнему появляется, когда я использовал getDeclaredMethod.
Вот основная программа
public class Test {
public static void main(Object... inputs){
InputManipulation test = new InputManipulation();
for (Object input: inputs){
Class ownerClass = test.getClass();
Class inputClass = input.getClass();
Method method = ownerClass.getDeclaredMethod("add", inputClass);
method.invoke(test, "Testing reflection");
}
}
}
А вот и самопределяемый класс InputManipulation
public class InputManipulation {
Integer total;
public InputManipulation(){this.total = 0;}
public void add(Integer num){this.total += num;}
public void add(String str){System.out.println(str);}
}
Заранее спасибо!
Теперь я изменил класс Test следующим образом ... но проблема все еще существует.
public class Test {
public static void main(String[] args){
Test testExample = new Test();
testExample.testMethod("String1", 1, "String2");
}
public void testMethod(Object... inputs){
InputManipulation test = new InputManipulation();
for (Object input: inputs){
Class ownerClass = test.getClass();
Class inputClass = input.getClass();
Method method = ownerClass.getDeclaredMethod("add", inputClass);
method.invoke(test, "Testing reflection");
}
}
}
Я также попытался поместить inputClass в массив Class, как это было предложено в другом посте, но этоне помог ..