Invoke method with parameters

208
25 июля 2017, 17:21

У меня есть проблема с рефлексией.

Сама суть: есть куча методов в классе. Я нахожу нужный таким образом (здесь все хорошо):

invokingMethod = InstanceClass.getMethod(AMethodName, AArgumentTypes);

далее я его хочу вызвать:

result = invokingMethod.invoke(AInstance, AArgumentObjects);

Содержимое AArgumentObjects:

И в итоге у меня выбрасывается ошибка про неверное тип переданных параметров.

Работает только, если явно передавать все параметры в функцию. Или использую AArgumentObjects[1] в переменной debug меню (если поменять в коде, то ошибки так и остаются):

После вызова из кода с AArgumentObjects[1]:

Выбрасывается : "java.lang.IllegalArgumentException"

Больше информации в аналогичном вопросе только на английском языке: https://stackoverflow.com/questions/45278807/invoke-method-with-parameters?noredirect=1#comment77520254_45278807

Answer 1

Я решил проблему таким образом:

result = invokingMethod.invoke(AInstance, ((Object[])AArgumentObjects[1]));
READ ALSO
Android: как правильно восстановить состояние после того, как приложение было убито ОС

Android: как правильно восстановить состояние после того, как приложение было убито ОС

Допустим, что у нас есть приложение с одной кнопкой - отправить запрос на добавление сообщения в чатПо нажатию на нее у нас появляется на экране...

218
Почему RequestDispatcher не меняет url в строке браузера?

Почему RequestDispatcher не меняет url в строке браузера?

Есть фильтр который передает управление определенному сервлету таки образом:

199
Как завершить проект в Android Studio?

Как завершить проект в Android Studio?

Как из проекта в Android Studio сделать apk-файл для скачивания на другие устройства?

419