X.d 笔记

小Web,大世界

0%

Java方法里面传不定个参数

在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代替,就可以想传什么就传什么了,但三个点只能放在最后一个参数,理由不解释~