Java8里提供了一种三个点的语法,意思是无论传入的同类参数无论是一个还是多个,都让编译器给编到数组里传到函数里,这样做相对于数组参数或是链表参数有省却打包的优势,实际上其内部实现是让编译器干了这活。

简单例程:

public class Test9 {
    private static void test(int... arr) {
        for(int i:arr) {
            System.out.print(i+",");
        }
        System.out.println();
    }
    
    public static void main(String[] args) {
        test(1,2,3);
        test(4,5,6,7);
        test(8,9,0);
    }
}

输出:

1,2,3,
4,5,6,7,
8,9,0,

从上面例子来看传参方便些了。 

 

稍复杂例程:

// 定义
private ConditionSgmt fillConditionSgmt(int... keys) throws SqlSyntaxException{
    ....
}

// 调用
connbySgmt=fillConditionSgmt(Token.TYPE_KW_CONNECTBY);
condiSgmt=fillConditionSgmt(Token.TYPE_KW_WHERE,Token.TYPE_KW_ON);

很明显这比定义链表/数组参数,然后调用时新建链表/数组再塞值再调用简洁多了