import java.util.*;

public class ArgumentsJava {

    public ArgumentsJava(String arg, String[] varargs) {
    }

    public String a_0() {
        return "a_0";
    }

    public String a_1(String arg) {
        return "a_1: " + arg;
    }

    public String a_3(String arg1, String arg2, String arg3) {
        return "a_3: " + arg1 + " " + arg2 + " " + arg3;
    }

    public String a_0_1() {
        return a_0_1("default");
    }

    public String a_0_1(String arg) {
        return "a_0_1: " + arg;
    }

    public String a_1_3(String arg1) {
        return a_1_3(arg1, "default");
    }

    public String a_1_3(String arg1, String arg2) {
        return a_1_3(arg1, arg2, "default");
    }

    public String a_1_3(String arg1, String arg2, String arg3) {
        return "a_1_3: " + arg1 + " " + arg2 + " " + arg3;
    }

    public String a_0_n(String[] args) {
        String ret = "a_0_n:";
        for (int i=0; i < args.length; i++) {
            ret += " " + args[i];
        }
        return ret;
    }

    public String a_1_n(String arg, String[] args) {
        String ret = "a_1_n: " + arg;
        for (int i=0; i < args.length; i++) {
            ret += " " + args[i];
        }
        return ret;
    }

    public String javaVarargs(String... args) {
        String ret = "javaVarArgs:";
        for (String arg: args)
            ret += " " + arg;
        return ret;
    }

    public String javaKWArgs(Map<String,Object> kwargs) {
        String ret = "javaKWArgs:";
        for (String key: kwargs.keySet())
            ret += " " + key + ":" + kwargs.get(key);
        return ret;
    }

    public String javaNormalAndKWArgs(String arg, Map<String,Object> kwargs) {
        String ret = "javaNormalAndKWArgs: "+arg;
        for (String key: kwargs.keySet())
            ret += " " + key + ":" + kwargs.get(key);
        return ret;
    }

    public String javaVarArgsAndKWArgs(List<String> varargs, Map<String,Object> kwargs) {
        String ret = "javaVarArgsAndKWArgs:";
        for (String arg: varargs)
            ret += " " + arg;
        for (String key: kwargs.keySet())
            ret += " " + key + ":" + kwargs.get(key);
        return ret;
    }

    public String javaAllArgs(String arg, List<String> varargs, Map<String,Object> kwargs) {
        String ret = "javaAllArgs: "+arg;
        for (String a: varargs)
            ret += " " + a;
        for (String key: kwargs.keySet())
            ret += " " + key + ":" + kwargs.get(key);
        return ret;
    }

    public String javaManyNormalArgs(String arg, String arg2, Map<String,Object> kwargs) {
        String ret = "javaManyNormalArgs: "+arg+" "+arg2;
        for (String key: kwargs.keySet())
            ret += " " + key + ":" + kwargs.get(key);
        return ret;
    }
}

@@ -2232,28 +2232,24 @@
 ng arg, 
-List%3C
 String
-%3E
+%5B%5D
  varargs

Test that String[] for varargs works with java kwargs also.