Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中如何解释varargs?_Java_Arrays_Variadic Functions - Fatal编程技术网

在Java中如何解释varargs?

在Java中如何解释varargs?,java,arrays,variadic-functions,Java,Arrays,Variadic Functions,假设我有以下方法: public void a(String string, Object ... objects) { //Code... } public void a(Object ... objects) { notNull("Some String", objects); } 仅使用一个参数调用a方法是否有效?或者,带有字符串和vararg的重载方法是否会从只使用vararg作为其列表中第一个对象的方法中获取数组(使其成为对象[0][…])? 谢谢你的帮助 据我所知

假设我有以下方法:

public void a(String string, Object ... objects) {
    //Code...
}

public void a(Object ... objects) {
    notNull("Some String", objects);
}
仅使用一个参数调用a方法是否有效?或者,带有字符串和vararg的重载方法是否会从只使用vararg作为其列表中第一个对象的方法中获取数组(使其成为对象[0][…])?
谢谢你的帮助

据我所知,varargs基本上是一个语法提示器

而不是:

void myMethod(Object[] args) { ... }
// ...
myMethod(new Object[]{"foo",2,true});
你可以写

void myMethod(Object... args) { ... }
/// ...
myMethod("foo",2,true);
编译器会把它包装成一个数组。阅读更多


关于您的问题,只需写下代码,看看将调用重载方法的哪些变体。

我希望您在提出问题之前尝试一下。实践使您变得完美。正如你所说的那样尝试自己。投票否决Lol的thx原因是:你基本上说“我想知道这是怎么回事”,而你应该说:“我重载了varargs方法,编写了这个代码段[提供可运行代码],这个重载方法将被调用,而不是另一个。为什么?”这将是一个值得讨论的问题。