У меня есть список параметров, и у меня есть имя метода. Я хочу вызвать метод с помощью отражения.
Когда я проверял документ Java для Method.invoke, он похож на Method.invoke (объект o, объект args ...).
Я знаю, что передать первому параметру (т. Е. Экземпляру, для которого вызывается метод, если его метод экземпляра), и аргументам являются параметры для этого метода.
Но теперь у меня есть список, который содержит значения, которые должны быть переданы методу.
Скажем, например: я хочу вызвать метод ClassName.methodName (String, int, int), и у меня есть список, который содержит {val1, 3, 4}.
Использование отражения может быть похоже на Method.invoke (classNameInstance, ??????). Но я не уверен, как преобразовать список аргументов в varargs и передать.
Один из возможных способов: если я знаю, что размер списка равен 3, я могу написать Method.invoke (classNameInstance, list.get (0), list.get (1), list.get (2)).
Но некоторые методы, которые я хочу динамически вызывать, принимают от 0 до 12 аргументов. Таким образом, не выглядит «хорошо» для создания переключателя и записи 12 случаев. Каждый проверит количество параметров и построит отдельный вызов с параметрами.
Есть ли способ сделать это, кроме использования переключателя?
Любая помощь будет принята с благодарностью.