文字列のリストをパラメーター "String ..."を必要とするメソッドに渡すのに苦労しています。
誰かが私を手伝ってくれる?
// How to put names into dummyMethod?
List<String> names = getNames();
public void dummyMethod(String... parameter) {
mInnerList.addAll(Arrays.asList(parameter));
}
dummyMethod
の 'varargs'パラメータで使用するには、List<String>
を文字列配列に変換する必要があります。 toArray
をパラメーターとして追加の配列とともに使用できます。それ以外の場合、メソッドはObject[]
を返し、コンパイルされません。
List<String> names = getNames();
dummyMethod(names.toArray(new String[names.size()]));
次のことができます。
dummyMethod(names.toArray(new String[names.size()])
リストを配列に変換します
文字列配列(String[]
)内部メソッド。リストを配列に変換して渡す必要があります。
if (names != null) {
dummyMethod(names.toArray(new String[names.size()]));
}
後でパラメーターをリストとして解析するので、メソッドを次のように変更することをお勧めします。
public void dummyMethod(List<String> parameter) {
mInnerList.addAll(parameter);
}
余分なコストを避けるために。
ただし、このメソッドを「そのまま」使用する場合は、次のように呼び出す必要があります。
dummyMethod(names.toArray(new String[names.size()]));
glorfindelが his answer で示唆しているように、3つのドットは、多くの文字列または文字列の配列を使用してメソッドを呼び出すことができることを意味します(詳細は this post を参照)。
Var-argは実際には配列を受け入れ、次のように使用できます。
dummyMethod(names.toArray(new String[names.size()]));
これがサンプルコードです:
List<String> names = new ArrayList<>();
names.add("A");
names.add("B");
dummyMethod(names.toArray(new String[names.size()]));
これはvarargパラメータで、配列を渡す必要があります。 ArrayListは機能しません。メソッドに渡す前に、このリストを配列に変換することができます。
String a = new String[names.size];
list.toArray(a)