提示五十三、五十四

提示五十三:慎用可变参数。

  1. 如果可变参数要求至少要求一个参数的话,可以使用这种样式。
public int min(int firstArg, int... remainingArgs) {
  int min = firstArg;
  for(int arg: remainingArgs) {
    if (arg < min) {
      min = arg;
    }
  }
  return min;
}
  1. 在重视性能的情况下,因为可变参数方法的每次调用都会导致进行一次数组分配和初始化。如果大部分调用会有3个或者更少的参数,就声明该方法的多个重载,当参数数目超过3个时,使用可变参数方法。具体如下:
public void foo() {}
public void foo() {int a1}
public void foo() {int a1, int a2}
public void foo() {int a1, int a2, int a3}
public void foo() {int a1, int a2, int a3, int... rest}

我们平时开发过程中一般很少会去使用可变参数,但类似上面第二点的case在Guava中还是比较常见,所以我们相关的地方也有使用,确实这样写有时候能更加方便,但是也要时刻注意,当心出现问题。

提示五十四:返回零长度的数组或集合, 而不是null。

  1. 通过返回 空数组或者空集合而不是null,可以避免大量对于null的判断处理逻辑,也减少了由于疏忽导致NPE异常的可能。
  2. 如果担心每次返回空列表都会创建一个新的对象而带来开销,可以使用Collections里面的emptyListemptySetempetMap方法,只不过可能不会带来多大的性能提升

这一点在平时写代码时很容易遇到问题,所以一般我们大家都会主动去做到,Java中非常容易出现NPE的问题,所以写代码的时候必须特别在意边界的条件。大多数情况下,用空集合代替null来返回都更不容易出错。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、编程规约 (一)命名规约 【强制】 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。反...
    喝咖啡的蚂蚁阅读 1,562评论 0 2
  • 阿里巴巴 JAVA 开发手册 1 / 32 Java 开发手册 版本号 制定团队 更新日期 备 注 1.0.0 阿...
    糖宝_阅读 7,743评论 0 5
  • 来源与:阿里云栖 禁止用于商业用途 ps:如果需要电子书 评论你们邮箱 我会发给你们 下面感觉还是有点乱 目录 一...
    小向资源网阅读 7,714评论 0 12
  • Java代码规范整理 对于一个整体的软件系统而言,既需要宏观上的架构决策,设计与指导原则,也必须重视微观上的代码细...
    jeffrey_hjf阅读 5,266评论 0 1
  • Java代码规范整理 对于一个整体的软件系统而言,既需要宏观上的架构决策,设计与指导原则,也必须重视微观上的代码细...
    亚武de小文阅读 2,777评论 8 47