变量aguments(varargs)java用法

OPK*_*OPK 0 java variadic-functions

我正在读一本关于java的书,作者做了一些变量论证.它是这样的:

public int num(int ... nums){}
Run Code Online (Sandbox Code Playgroud)

我做了一些研究,它看起来就像nums一个数组.所以我认为上面的代码可以替换为:

public int num(int[] nums){}
Run Code Online (Sandbox Code Playgroud)

我的问题:变量参数有什么意义?你能改变其他类型的类型String吗?

Asa*_*aph 5

不同之处在于您可以如何调用该方法.

如果您的方法如下所示:

public int num(int[] nums){}
Run Code Online (Sandbox Code Playgroud)

你可以这样称呼它:

num(new int[] { 1, 2, 3 });
Run Code Online (Sandbox Code Playgroud)

另一方面,如果你使用这样的varargs:

public int num(int ... nums){}
Run Code Online (Sandbox Code Playgroud)

你可以更简洁地称它为:

num(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)