在php或其它语言面经常遇到这样的方法:
function getData($page_no=1,$page_size=40){
//code
}
可以只传少量参数,参数不够时就以默认值代替,在Java里面实际上也可以
这种方法的好处是参数可传可不传,不传将使用默认的参数。在JAVA里面貌似又没有这种语法,想实现的时候经常写几个方法互调,感觉很不好看。
现在发现还是有这样的方法的,而且更灵活,有个语法是三个点,由于一直少用所以不容易被记起。
上面的方法在Java里面可以写成这样
public String getData(int... args){
int page_no = args.length>1?args[0]:1;
int page_size = args.length>2?args[1]:40;
}
调用的时候就
getData();
getData(2);
getData(3,50);
getData(3,50,45);//后面无效,也不会有语法错误
取值的时候就当参数的类型为数组,如String…=String[],int…=int[],Object…=Object[].
三个点前面可以放在任何类型后面,当然不确定类型时也可以用Object代替,就可以想传什么就传什么了,但三个点只能放在最后一个参数,理由不解释~