在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方法,编写了这个代码段[提供可运行代码],这个重载方法将被调用,而不是另一个。为什么?”这将是一个值得讨论的问题。