У меня есть список параметров и имя метода. Я хочу вызвать метод, используя отражение. Когда я проверил документ Java для Method.invoke, это похоже на Method.invoke(object o, Object args...) . Я знаю, что передать для первого параметра (т. е. экземпляр, для которого следует вызывать метод, если его метод экземпляра), а 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 случаев. Каждый будет проверять количество параметров и строить отдельный вызов с параметрами.
Любой способ сделать это, кроме как с помощью переключателя?
Любая помощь будет оценена.