code: public boolean matches(Class<?>[] args) {
          int i;
          Class<?>[] paras;
  
          paras = getParameterTypes();
          if (args.length != paras.length) {
              return false;
          }
          for (i = 0; i < args.length; i++) {
              if (!paras[i].isAssignableFrom(args[i])) {
                  return false;
              }
          }
          return true;
      }
docs: Tests if the functions can be called with arguments of the
  specified types.
  @param   args  arguement types
  @return  true, if the function can be called with these types