以可变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()采取ThingList<Thing>

有没有办法通过列表作为可变参数?

这是在一个Android应用程序,但我不明白为什么解决scheme将不适用于任何Java

只需传递things.toArray(new Thing[things.size()])

可变参数在内部被解释为一个数组。 所以你应该先把它转换成一个数组。 同样在你的doIt方法中,你应该使用数组索引来访问东西的元素。