2013-05-25 13 views
29

可変長文字列(String ...)をパラメータとして受け取るメソッドがあります。私にはList<String>があります。これを引数としてメソッドに渡すにはどうすればよいですか?Listを可変引数パラメータに変換する方法Java

+0

[Javaでの可変引数:Javaでの可変引数方法](http://viralpatel.net/blogs/varargs-in-java-variable-argument-method-in-java-5/) –

+1

私はあなたの質問を正しく理解しています。それは 'method(String ... length)'か 'method(int length、String ... param)'なのでしょうか? – Pshemo

答えて

40

String...は、だからあなたのlistString[]に変換し、あなたは問題ないはずですString[] に等しいです。

+11

OPへの追加の注記:Object ...を取るメソッドがある場合、String []が1つのObjectとして理解されるため、このスキームは機能しません。 –

21

String ...とString []は、リストを配列に変換すると同じです。

機能するString ...引数としてその配列を使用し、次いで

Foo[] array = list.toArray(new Foo[list.size()]); 

又は

Foo[] array = new Foo[list.size()]; 
list.toArray(array); 

を使用。

+5

これも動作します: 'list.toArray(new Foo [] {})';追加の変数にリストを格納したくない場合に便利です。 – liosedhel

2

あなたはその後、アレイは...引数の位置で使用することができ8.

String[] array = list.stream().toArray(String[]::new); 

Javaでstreamを使用することができます。

+0

list.toArray(new String [] {})で十分です –

関連する問題