what reflexion programming principio method ejemplos java reflection

programming - reflexion java ejemplos



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

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


Desde el Javadoc de Method.invoke ():

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

Que pasa cuando tu

Class klass = ...; Method m = klass.getDeclaredMethod(methodName, paramtypes); m.invoke(null, args)


// 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 privado use getDeclaredMethod() lugar de getMethod() . Y llame a setAccessible(true) en el objeto de método.


String methodName= "..."; String[] args = {}; Method[] methods = clazz.getMethods(); for (Method m : methods) { if (methodName.equals(m.getName())) { // for static methods we can use null as instance of class m.invoke(null, new Object[] {args}); break; } }