public static Object send(Object object, String methodName, Object[] parameters, Class<?> objectClass,
                              Class<?>[] parameterTypes) throws SecurityException, IllegalArgumentException,
            IllegalAccessException, InvocationTargetException, NoSuchMethodException {
        if (parameters == null) {
            parameters = new Object[]{};
        }
        if (parameterTypes == null) {
            parameterTypes = new Class[]{};
        }
        Method method = objectClass.getDeclaredMethod(methodName, parameterTypes);
        method.setAccessible(true);
        return method.invoke(object, parameters);
    }
This method use java reflect API to execute method dynamically. Most
importantly, it could access the methods with private modifier to break
encapsulation.

@param object         The object to invoke method.
@param methodName     The method name to invoke.
@param parameters     The parameters.
@param objectClass    Use objectClass to find method to invoke.
@param parameterTypes The parameter types.
@return Returns the result of dynamically invoking method.
core/src/main/java/com/quxianggif/core/util/Reflection.java