踩坑之 Java 可变长参数列表

Java 可变长参数列表

这是 Java 5 引入的一个特性,如果一个方法要接收的参数数量是不确定的,那么这个特性就可以派上用场了。

比如,在涉及IO操作的地方,基本上至少需要关闭两个流:输入、输出,我喜欢把流关闭的操作封装成下面的方法,这样只需一次调用就可以关闭多个流。

public static void closeSilent(Closeable... closeables) {
     for (Closeable closeable : closeables) {
          if (closeable != null) {
               try {
                    closeable.close();
               } catch (IOException ignored) {
               }
          }
     }
}

这是我觉得这个特性唯一适合使用的地方,具备下面的特点:

  • 这些参数具有相同的类型;
  • 参数数量不确定,每一个都是可选的;
  • 这些参数的用途都是一样的,比如上面都是执行关闭。

Java 可变长参数列表只能放在方法参数列表的最后。

继续阅读