【发布时间】:2013-04-05 20:55:18
【问题描述】:
关于Varargs,我可以在一组中重复参数吗?
例如,我想允许用户传入:
myFunc(1, "one");
myFunc(1, "one", 2, "two");
myFunc(1, "one", 2, "two", 3, "three");
这似乎是不可能的。但正如docs 中提到的,可变参数实际上是一个数组,在旧的实现中。我想知道 人们是如何 发明可变参数的。这可能会启发我们如何实现上述场景。我们可以将我的场景视为{int, String}...毕竟在重复。
感谢您的任何意见 :-)
编辑:
感谢您的所有投入!
那么,myFunc(new wrap(1, "one"), new wrap(2, "two"), new wrap(3, "three"));调用是不是老方法?
编辑 2:
嗯,不。那是我混乱的错。
对于
myFunc(1);
myFunc(1, 2);
myFunc(1, 2, 3);
旧的方式应该是
myFunc(new int[]{1});
myFunc(new int[]{1, 2});
myFunc(new int[]{1, 2, 3});
据我所知,重复的参数形成 an 数组。它的所有参数必须是同一类型。以简单的方式实现上述调用应该是不可能的。出于好奇,我开始考虑运算符重载的可能性......(?)
【问题讨论】:
标签: java arguments overloading argument-passing variadic-functions