EffectiveJava学习笔记23:慎用可变参数、返回零长度数组集合不返回null

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的话,调用时往往需要额外处理。

返回零长度,可以返回一个固定不可变的零长度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值