Java可变参数详解

可变参数(variable argument),应用方法的参数列表中类型相同,个数未知的场合。

语法及注意事项:

methodName([argumentList],argumentType … argumentName);

可变参数在参数列表中的限制,首先在一个方法参数列表中只允许存在一个可变参数,因此可变参数必须是参数列表中的最后一个参数。

在方法体中如何使用可变参数?

当指定一个可变参数时,编译器将其读作创建一个<argumentType>类型的数组,如下代码所示:

public void f (String... names) --> public void f(String[] names)

因此在方法中,我们可以使用foreach语法像迭代数组一样迭代可变参数

for(String name : names){    // dosomething}

此外,还可将可变参数赋给一个数组或是使用Arrays.asList()方法将其转换为一个容器类型对象,至此便可完全像操作一个数组或容器对象一样,操作一个可变参数实现各种业务逻辑。 需要注意的是,可变参数实际的意思为0~n个<argumentType>类型的参数,即允许0个参数,我们应该根据业务逻辑判断是否需要处理这种特殊情况。可使用两种方法处理这种情况,如果0个参数符合业务逻辑,则只需按正常流程执行,否则可选择抛出一个IllegalArgumentException来提示用户。 可变参数与方法重载

void f(Integer... args);void f(String... args);// 方法调用f();//The method f(Integer[]) is ambiguous

因此我们应该只在重载方法中的一个版本上使用可变参数列表,或者压根就不使用它。以诚感人者,人亦诚而应。

Java可变参数详解

相关文章:

你感兴趣的文章:

标签云: