1.慎用可变参数
什么是可变参数?
就是可匹配不同长度(数量的参数),可以接收0个或多个指定类型的参数。(一个类型+3个省略号+自定义参数名)
例:int... xx
具体例子:
public static int sum(int... numbs){
int sum=0;
for(int numb:numbs){
sum+=numb;
}
return sum;
}
public static void main(String[] args) {
System.out.println("实现无参数,sum="+sum());
System.out.println("实现1个参数,sum="+sum(1));
System.out.println("实现2个参数,sum="+sum(1,2));
System.out.println("实现3个参数,sum="+sum(1,2,3));
}
结果:
这里使用int... numbs 这个可变参数进行方法设计。返回实现时的参数总和sum.
缺点:无参编译不会失败,反而容易出错。
可变参数应用场景
可变参数一开始主要是为C语言的printf设计的,然后就添加到了java平台。
然后阿里巴巴开发手册也说了:“相同参数类型,相同业务含义,才可以使用 Java 的可变参数,避免使用 Object。”
所以需要谨慎使用可变参数。
下面再举个简单的例子使用可变参数:
public static String GetAreaMinNumb(String name,int firstNumb,int... Numbs){
int min=firstNumb;
String NumbArea="输入数值:"+firstNumb;
for(int numb:Numbs){
NumbArea=NumbArea+","+numb;
if(min>numb){
min=numb;
}
}
String returnString="姓名:"+name+"做了最小值计算,最小值为:"+min+"。范围"+NumbArea;
return returnString;
}
public static void main(String[] args) {
System.out.println("获取最小值:"+GetAreaMinNumb("沙丁鱼flat",20,53,21,13,40,71));
System.out.println("获取最小值:"+GetAreaMinNumb("比目鱼flat",10,11,2,13,10,31));
}
2.返回零长度数组或者集合,而不是null
对于一个数组和集合,返回零长度比返回null方便:
因为返回null的话,调用时往往需要额外处理。
返回零长度,可以返回一个固定不可变的零长度。