变量参数在内部被解释为数组。因此,您应该先将其转换为数组,然后再进行处理。此外,在
我有一个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>
。
有没有一种方法可以将List作为varargs传入?
这是在Android应用程序中,但我不明白为什么该解决方案不适用于任何Java
只需通过things.toArray(new Thing[things.size()])
。
doIt
方法中,您应该使用数组索引访问things-s元素。