Хорошо, не уверен, что происходит. Я использую Java Reflection и итерацию и проверку методов определенного класса. Ниже приведена следующий код, я использую:Почему я получаю дополнительный материал при переходе через методы?
public void test(){
Class useCases = Car.class;
Method[] methods = useCases.getMethods();
Integer[] numbers = {2, 5};
String[] numberStrings = {"2", "5"};
for(int i=0; i<methods.length; i++){
try {
System.out.print(methods[i].getName());
Method method = useCases.getMethod(methods[i].getName(), new Class[]{String.class, Integer.class});
Object returnV = method.invoke(new Car(), numberStrings[i], numbers[i]);
System.out.print(returnV.toString() + "\n");
} catch (Exception e) {
e.printStackTrace();
}
}
}
автомобили класс:
public String getNumber(String number, Integer times){
return times == 2 ? number : null;
}
public String getNumber1(String number, Integer times){
return times == 5 ? number : null;
}
Он перебирает тонкую печать из первых двух методов и возвращаемое значение штрафа, но затем он продолжает и печатает ждать() и не знаю, почему, и я получаю следующее сообщение об ошибке:
java.lang.NoSuchMethodException: sample.Car.wait(java.lang.String, java.lang.Integer)
Любая помощь, почему цикл не заканчивается только с печатью и возвращает значения для двух единственных методов в этой машине с деваха.
Почему вы делаете 'Метод method = useCases.getMethod (методы [i] .getName(), новый класс [] {String.class, Integer.class});' просто для возврата 'методов [i]' ? –
То, что я предоставил, не то, что я использую в производстве. Я просто практикую, так как я только начинаю использовать этот метод. – user2474976
Достаточно справедливо. Удачи с ним - отражение действительно круто. –