Java two varargs in one method Java two varargs in one method arrays arrays

Java two varargs in one method


Only one vararg, sorry. But using asList() makes it almost as convenient:

 public void myMethod(List<Integer> args1, List<Integer> args2) {   ... } ----------- import static java.util.Arrays.asList; myMethod(asList(1,2,3), asList(4,5,6));


In Java, only one varargs argument is allowed and it must be the last parameter of the signature.

But all it does it convert it to an array anyway, so you should just make your two parameters explicit arrays:

public void doSomething(String[] s, int[] i){


A possible API design in which the calling code looks like

    doSomething("a", "b").with(1,2);

through "fluent" API

public Intermediary doSomething(String... strings){    return new Intermediary(strings);}class Intermediary{    ...    public void with(int... ints)    {        reallyDoSomething(strings, ints);    }}void reallyDoSomething(String[] strings, int[] ints){    ...}

The danger is if the programmer forgot to call with(...)

    doSomething("a", "b");  // nothing is done

Maybe this is a little better

    with("a", "b").and(1, 2).doSomething();