Invoking a static method using reflection Invoking a static method using reflection java java

Invoking a static method using reflection


// String.class here is the parameter type, that might not be the case with youMethod method = clazz.getMethod("methodName", String.class);Object o = method.invoke(null, "whatever");

In case the method is private use getDeclaredMethod() instead of getMethod(). And call setAccessible(true) on the method object.


Fromthe Javadoc of Method.invoke():

If the underlying method is static, then the specified obj argument is ignored. It may be null.

What happens when you

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


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;    }}