以可变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方法中,你应该使用数组索引来访问东西的元素。