web-dev-qa-db-ja.com

リストを可変引数として渡す

_List<Thing>_があり、doIt(final Thing... things)と宣言されたメソッドに渡したいです。それを行う方法はありますか?

コードはsomethingのように見えます:

_public doIt(final Thing... things)
{
    // things get done here
}

List<Thing> things = /* initialized with all my things */;

doIt(things);
_

doIt()は_List<Thing>_ではなくThingを取るため、このコードは明らかに機能しません。

リストを可変引数として渡す方法はありますか?

これはAndroidアプリにありますが、ソリューションがJavaに適用されない理由はわかりません

59
xbakesx

things.toArray(new Thing[things.size()])を渡すだけです。

99
SLaks

可変引数は、内部的に配列として解釈されます。そのため、事前に配列に変換する必要があります。 doItメソッドでも、配列のインデックスを使用してthings-s要素にアクセスする必要があります。

1
zeller