以可变parameter passing列表
我有一个List<Thing>
,我想把它传递给一个声明doIt(final Thing... things)
。 有没有办法做到这一点?
代码看起来像这样:
public doIt(final Thing... things) { // things get done here } List<Thing> things = /* initialized with all my things */; doIt(things);
该代码显然不工作,因为doIt()
采取Thing
不List<Thing>
。
有没有办法通过列表作为可变参数?
这是在一个Android应用程序,但我不明白为什么解决scheme将不适用于任何Java
只需传递things.toArray(new Thing[things.size()])
。
可变参数在内部被解释为一个数组。 所以你应该先把它转换成一个数组。 同样在你的doIt
方法中,你应该使用数组索引来访问东西的元素。