addParameter(name, (Object[]) v);
addParameter(name, (Object[]) CollectionUtil.asObjectArray(v));
    public void addParameter(String name, Object... values) {        try {            // If values is null or empty, then simply sub in a single empty string            if (values == null || values.length == 0) {                values = Literal.array("");            }            for (Object v : values) {                // Special case: recurse for nested collections and arrays!                if (v instanceof Collection) {                    addParameter(name, ((Collection) v).toArray());                }                else if (v.getClass().isArray()) {                    addParameter(name, (Object[]) v);                }                else {                    // Figure out whether we already have params or not                    if (!this.seenQuestionMark) {                        this.url.append('?');                        this.seenQuestionMark = true;                    }                    else {                        this.url.append(this.parameterSeparator);                    }                    this.url.append(name);                    this.url.append('=');                    if (v != null) {                        this.url.append( URLEncoder.encode(v.toString(), "UTF-8") );                    }                }            }        }        catch (UnsupportedEncodingException uee) {            throw new StripesRuntimeException("Unsupported encoding?  UTF-8?  That's unpossible.");        }    }