[英]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) { ... }
您可以通过两种方式使用该方法:
传递数组本身。 像这样:
的init(数组);
传递每个数组元素。 像这样:
init(array [0],array [1],... array [n]);
请注意,如果要为此方法设置其他参数,则应仅在变量参数之前将它们放在方法签名中。
您始终可以使用变量arguments方法参数。 事实上,它具有与您在上面发布的方法签名相同的方法签名。
public void init(int... conditions){}
这使条件成为int [],您可以迭代它以获得初始条件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.