Passing variable arguments (varargs)
Java supports variable arguments in method definitions with the ellipsis notation, allowing
callers to pass a different number of arguments depending on the need. A typical example is a
message print
method:
        import java.lang.String;
public class MyClass {
    public static void ShowStrings( String... sl ) {
        for ( String s : sl )
            System.out.println(s);
    }
}In
order to call such a method from the Genero program, create a 
Java array of the type of the variable argument, fill the array with objects and call the
method with that array:
IMPORT JAVA java.lang.String
IMPORT JAVA MyClass
MAIN
    TYPE sl_t ARRAY[] OF java.lang.String
    DEFINE sl ARRAY[] OF java.lang.String
    LET sl = sl_t.create(2)
    LET sl[1] = "Value 1"
    LET sl[2] = "Value 2"
    CALL MyClass.ShowStrings(sl)
END MAINSince Java arrays have a static size, you must create the Java array with the exact number of variable arguments to be passed to the method.
If the Java class cannot be modified, consider implementing a function to wrap calls to
the Java method, with a varying number of arguments. It can for example take a BDL dynamic array as
parameter, to simplify the callers code:
        IMPORT JAVA java.lang.String
IMPORT JAVA MyClass
MAIN
    DEFINE a DYNAMIC ARRAY OF STRING
    LET a[1] = "Value 1"
    LET a[2] = "Value 2"
    LET a[3] = "Value 3"
    CALL my_show_strings(a)
    LET a[4] = "Value 1"
    LET a[5] = "Value 2"
    CALL my_show_strings(a)
END MAIN
FUNCTION my_show_strings(sa)
    TYPE sl_t ARRAY[] OF java.lang.String
    DEFINE sa DYNAMIC ARRAY OF STRING
    DEFINE sl ARRAY[] OF java.lang.String
    DEFINE i INTEGER
    LET sl = sl_t.create(sa.getLength())
    FOR i=1 TO sa.getLength()
        LET sl[i] = sa[i]
    END FOR
    CALL MyClass.ShowStrings(sl)
END FUNCTIONIf the Java class can be modified, a good practice is to write overloaded methods, using
            a static number of
            arguments:
public class MyClass {
    private static void _ShowStrings( String... sl ) {
        for ( String s : sl )
            System.out.println(s);
    }
    public static void ShowStrings(String s1) {
        _ShowStrings(s1);
    }
    public static void ShowStrings(String s1, String s2) {
        _ShowStrings(s1, s2);
    }
    public static void ShowStrings(String s1, String s2, String s3) {
        _ShowStrings(s1, s2, s3);
    }
}