Java 和 Scala 都支持变参方法, 写在最后的位置上,最基本的调用方式也都是一样的,一个个罗列过去。也可以传入数组参数,因为变参本质上就是一个数组,就是把 ... 开始位置到最后一个参数都收纳到数组中去,所以变参之所以要放在最后的位置上,且一个方法中最多只能有一个变参类型。
这里主要是对比 Scala 对变参方法的调用,基本调用法当然是没问题的,但是在传入数组作为变参的参数列表与 Java 相对时就稍有变化了。
另外提一下,如果想传入 List 作为变参列表,而不是整体作为变参的第一个元素就是调用集合的 toArray() 方法转换成一个数组传入。
下面看 Java 中对变参方法的调用,参数列表和数组
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public class JavaVarArgs { public static void main(String[] args) { foo("a", "b", "c"); foo(new String[]{"d", "e"}); } public static void foo(String...params) { System.out.println(params + " : " + params.length); for(String s: params) { System.out.println(s); } } } |