Here you can find the source of invoke(Object obj, String method, Class[] params, Object[] args)
Invokes method of a given obj and set of parameters
Parameter | Description |
---|---|
obj | - Object for which the method is going to be executed. Special if obj is of type java.lang.Class, method is executed as static method of class given as obj parameter |
method | - name of the object |
params | - actual parameters for the method |
If there is any problem with method invocation, a RuntimeException is thrown
public static Object invoke(Object obj, String method, Class[] params, Object[] args)
//package com.java2s; //License from project: Open Source License import java.lang.reflect.Method; public class Main { /**/*from www . j a v a 2 s .co m*/ * <p>Invokes method of a given obj and set of parameters</p> * * @param obj - Object for which the method is going to be executed. Special * if obj is of type java.lang.Class, method is executed as static method * of class given as obj parameter * @param method - name of the object * @param params - actual parameters for the method * @return - result of the method execution * * <p>If there is any problem with method invocation, a RuntimeException is thrown</p> */ public static Object invoke(Object obj, String method, Class[] params, Object[] args) { try { Class<?> clazz = null; if (obj instanceof Class) { clazz = (Class) obj; } else { clazz = obj.getClass(); } Method methods = clazz.getMethod(method, params); if (obj instanceof Class) { return methods.invoke(null, args); } else { return methods.invoke(obj, args); } } catch (Exception e) { throw new RuntimeException(e); } } /** * Gets method from class <code>clz</code> or any of its superclasses. If no method can be found * <code>NoSuchMethodException</code> is raised. * * @param clz - declaring class of the method * @param methodName - name of the method * @param methodArgs - method arguments * @return requested method * @throws NoSuchMethodException */ public static Method getMethod(Class<? extends Object> clz, String methodName, Class[] methodArgs) throws NoSuchMethodException { if (clz == null) throw new NoSuchMethodException(methodName + "(" + methodArgs + ") method does not exist "); try { return clz.getDeclaredMethod(methodName, methodArgs); } catch (NoSuchMethodException e) { return getMethod(clz.getSuperclass(), methodName, methodArgs); } } }