次の関数 のString...は何を意味しますか?
public UpdateSettingsRequest(String... indices) {
this.indices = indices;
}
これはvarargsと呼ばれます。署名の最後の引数である限り、どの型でも機能します。
基本的に、任意の数のパラメーターが配列に入れられます。これは、配列と同等であるという意味ではありません。
次のようなメソッド:
void foo(int bar, Socket baz...)
baz と呼ばれる Socket (この例では)の配列を持ちます。
したがって、呼び出すfoo(32, sSock.accept(), new Socket())
と、2 つの Socket オブジェクトを含む配列が見つかります。
タイプが配列を取るように構成されていないfoo(32, mySocketArray)
ため、 asを呼び出しても機能しません。ただし、署名が配列の可変引数である場合は、1 つ以上の配列を渡して 2 次元配列を取得できます。たとえば、PrintStream の複数の配列を取得して、それらを単一の に貼り付けることができます。void bar(int bar, PrintStream[] baz...)
PrintStream[][]
奇妙なことに、配列はオブジェクトであるObject... foo
ため、任意の数の配列を取ることができます。