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.InvocationTargetException; import java.lang.reflect.Method; public class Main { /**//from www .ja v a2 s.c o 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 { return invoke_ex(obj, method, params, args); } catch (Exception e) { throw new RuntimeException(e); } } public static Object invoke_ex(Object obj, String method, Class<?>[] params, Object[] args) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException { Class<?> clazz = null; if (obj instanceof Class<?>) { clazz = (Class<?>) obj; } else { clazz = obj.getClass(); } Method methods = clazz.getDeclaredMethod(method, params); methods.setAccessible(true); if (obj instanceof Class<?>) { return methods.invoke(null, args); } else { return methods.invoke(obj, args); } } }