code: protected String printMethodArgs(List<Type> args, boolean varArgs, Locale locale) {
          if (!varArgs) {
              return visitTypes(args, locale);
          } else {
              StringBuilder buf = new StringBuilder();
              while (args.tail.nonEmpty()) {
                  buf.append(visit(args.head, locale));
                  args = args.tail;
                  buf.append(',');
              }
              if (args.head.hasTag(TypeTag.ARRAY)) {
                  buf.append(visit(((ArrayType) args.head).elemtype, locale));
                  if (args.head.getAnnotationMirrors().nonEmpty()) {
                      buf.append(' ');
                      buf.append(args.head.getAnnotationMirrors());
                      buf.append(' ');
                  }
                  buf.append("...");
              } else {
                  buf.append(visit(args.head, locale));
              }
              return buf.toString();
          }
      }
docs: Converts a set of method argument types into their corresponding
  localized string representation.
  
  @param args arguments to be rendered
  @param varArgs if true, the last method argument is regarded as a vararg
  @param locale the locale in which the string is to be rendered
  @return localized string representation