将数组作为参数单独传递

时间:2013-05-04 00:23:08

标签: java arguments

我希望有一个抽象函数,例如

init(int... conditions);

这样继承的类可以有各种init条件;可能某些课程需要较少的课程,其他课程可能会比其他课程更多。

但是我希望像下面一样单独传递它们

init(arr[0], arr[1], arr[2]... arr[size-1]);

大于

init(arr);

这种方法可行吗?如果没有,那么我应该更好地传递数组吗?


很抱歉我似乎有点混乱。

我有一个大小为n的数组,它们各不相同。 我不能硬编码传递参数,因为参数的数量是可靠的。 我不想为不同版本的init方法寻找函数重载,因为这将创建大约十几个不同版本的init方法。

2 个答案:

答案 0 :(得分:2)

您不需要重载该方法。只需使用所谓的variable arguments即可。从1.5版开始,它们在Java中可用。例如:

public void init(int... conditions) { ... }

您可以通过两种方式使用该方法:

  1. 传递数组本身。像这样:

    的init(数组);

  2. 传递每个数组元素。像这样:

    init(array [0],array [1],... array [n]);

  3. 请注意,如果要为此方法设置其他参数,则应仅在变量参数之前将它们放在方法签名中。

答案 1 :(得分:1)

您始终可以使用变量arguments方法参数。事实上,它具有与您在上面发布的方法签名相同的方法签名。

public void init(int... conditions){}

这使条件成为int [],您可以迭代它以获得初始条件。