code: public Signature appendArgs(String[] names, Class<?>... types) {
          assert names.length == types.length : "names and types must be of the same length";
  
          String[] newArgNames = new String[argNames.length + names.length];
          System.arraycopy(argNames, 0, newArgNames, 0, argNames.length);
          System.arraycopy(names, 0, newArgNames, argNames.length, names.length);
          MethodType newMethodType = methodType.appendParameterTypes(types);
          return new Signature(newMethodType, newArgNames);
      }
docs: Append an argument (name + type) to the signature.
  
  @param names the names of the arguments
  @param types the types of the argument
  @return a new signature with the added arguments