将列表作为 varargs 传入

2022-08-31 14:09:12

我有一个,我想把它传递给一个声明的方法。有没有办法做到这一点?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>

有没有办法将列表作为 varargs 传递?

这是在Android应用程序中,但我不明白为什么该解决方案不适用于任何Java。


答案 1

只需通过.things.toArray(new Thing[things.size()])


答案 2

可变参数在内部被解释为数组。因此,您应该事先将其转换为数组。同样在你的方法中,你应该使用数组索引来访问 things-s 元素。doIt