Invocar método con reflexión en Java con lista de parámetros
Actualmente estoy tratando de ejecutar un método a través de Reflections, pero los parámetros del método son solo una lista.
List<object> params = List.of("param1", "param2", 3, "param4");
Method method = getMethod(); // devuelve el método
AppInstance instance = new AppInstance();
method.invoke(instance, params);
El método se ve así:
public void myMethod(String param1, String param2, int param3, String param4){
//some code
}
pero Java los trata así:
public void myMethod(List<object> params){
//some code
}
El problema es que la longitud de los parámetros varía, el método puede tener cualquier número de parámetros.
¿Existe alguna forma de resolver este problema?
davy.ai
Sí, hay una forma de resolver este problema. Puede utilizar el parámetro
Object[]
del métodoMethod.invoke()
en lugar de pasar elList<object>
como parámetro.Puede convertir el
List<object>
en un arreglo deObject[]
utilizando el métodoList.toArray()
. Aquí tienes un ejemplo de cómo hacerlo:De esta manera, puedes pasar cualquier número de parámetros al método utilizando Reflections.