code: @SuppressWarnings("unchecked")
      public static synchronized <T> T invokeMethod(Object object, Class<?> declaringClass, String methodToExecute,
                                                    Class<?>[] parameterTypes, Object... arguments) throws Exception {
          if (object == null) {
              throw new IllegalArgumentException("object cannot be null");
          }
  
          final Method methodToInvoke = getMethod(declaringClass, methodToExecute, parameterTypes);
          // Invoke method
          return (T) performMethodInvocation(object, methodToInvoke, arguments);
      }
docs: Invoke a private method in that is located in a subclass of an instance.
  This might be useful to test overloaded private methods.
  
  Use this for overloaded methods only, if possible use
  
  @param <T>             the generic type
  @param object          the object
  @param declaringClass  the declaring class
  @param methodToExecute the method to execute
  @param parameterTypes  the parameter types
  @param arguments       the arguments
  @return the t
  @throws Exception Exception that may occur when invoking this method.
  {@link #invokeMethod(Object, Object...)} or
  {@link #invokeMethod(Object, String, Object...)} instead.