越来越多的Java库使用了可变长参数,不再需要加一个new Object[]那么别扭。
那么如何自己实现一个这样的可变长函数呢?
我们就以实现一个一长串的整数相加作为例子:
变长参数是用T...标明,在函数体内,其实就是一个类型为T的数组,然后像操作数组那样进行变长参数就行了。
例子:
public class KMath {
public static int add(int... args) {
int result = 0;
for (int arg : args) {
result += arg;
}
return result;
}
}
需要注意的是,这个T...必须放在参数列表的最后面,这样才能够避免歧义。
public class VariableArgLengthListTest {
@Test
public void test_variable_length_arg_list_works() {
assertThat(KMath.add(1, 2, 3, 4), is(10));
assertThat(KMath.add(1, 2, 3), is(6));
assertThat(KMath.add(1, 2), is(3));
assertThat(KMath.add(1), is(1));
}
}Done。
本文介绍了Java中可变长参数的使用方法,并通过一个整数相加的例子展示了如何实现可变长参数的功能。文章还提供了测试代码来验证实现的正确性。
553

被折叠的 条评论
为什么被折叠?



