Invocar un método estático usando la reflexión

Resuelto Steven asked hace 14 años • 5 respuestas

Quiero invocar el mainmétodo que es estático. Obtuve el objeto de tipo Class, pero no puedo crear una instancia de esa clase y tampoco puedo invocar el staticmétodo main.

Steven avatar Mar 18 '10 11:03 Steven
Aceptado
// String.class here is the parameter type, that might not be the case with you
Method method = clazz.getMethod("methodName", String.class);
Object o = method.invoke(null, "whatever");

En caso de que el método sea de uso privado getDeclaredMethod()en lugar de getMethod(). Y llame setAccessible(true)al objeto del método.

Adeel Ansari avatar Mar 18 '2010 04:03 Adeel Ansari

Del Javadoc de Method.invoke():

Si el método subyacente es estático, entonces se ignora el argumento obj especificado. Puede ser nulo.

¿Qué pasa cuando tú

Clase clase = ...;
Método m = klass.getDeclaredMethod(methodName, paramtypes);
m.invocar (nulo, argumentos)
atk avatar Mar 18 '2010 04:03 atk