繁体   English   中英

将数组作为参数单独传递

[英]Passing array as argument BUT individually

我想要一个抽象的功能,如

init(int... conditions);

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

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

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

init(arr);

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


很抱歉我似乎创造了混乱。

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

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

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

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

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

    的init(数组);

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM