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);
很明显这比定义链表/数组参数,然后调用时新建链表/数组再塞值再调用简洁多了