编程语言
首页 > 编程语言> > 变量长度参数是否被视为Java中的数组?

变量长度参数是否被视为Java中的数组?

作者:互联网

据我所知,数组由固定数量的元素组成,并且可变长度参数在传递时使用相同数量的参数(相同类型).但他们一样吗?我可以通过一个预期的另一个吗?

解决方法:

是的,如果你有一个带有varargs参数的方法,如下所示:

public void foo(String... names)

你这样称呼它:

foo("x", "y", "z");

然后编译器将其转换为:

foo(new String[] { "x", "y", "z"});

names参数的类型是String [],可以像任何其他数组变量一样使用.请注意,它仍然可以为null:

String[] nullNames = null;
foo(nullNames);

有关更多信息,请参见documentation for varargs.

这并不意味着varargs可以与数组互换 – 您仍然需要声明接受varargs的方法.例如,如果您的方法声明为:

public void foo(String[] names)

那么调用它的第一种方法就不会编译.

标签:java,arrays,variadic-functions
来源: https://codeday.me/bug/20190929/1830136.html