code: def invoke_method(obj, name, *args):
          
          if obj == None:
              raise Exception("Object cannot be null")
          if name == None:
              raise Exception("Method name cannot be null")
          
          name = name.lower()
          
          try:
              for method_name in dir(obj): 
                  if method_name.lower() != name:
                      continue
  
                  method = getattr(obj, method_name)
  
                  if MethodReflector._is_method(method, method_name):
                      return method(*args)
          except:
              pass
          
          return None
docs: Invokes an object method by its name with specified parameters.
  
          :param obj: an object to invoke.
  
          :param name: a name of the method to invoke.
  
          :param args: a list of method arguments.
  
          :return: the result of the method invocation or null if method returns void.