重複の可能性:
このメソッド シグネチャの省略記号 (…) は何ですか?
java: 任意の数のパラメーターをサポートする関数を作成するにはどうすればよいですか?
さて、私はいくつかの例を理解しようとしていますが、メイン メソッドでこの種の引数の配列定義を見つけました。この "..." の何が特別なのですか? 通常の String[] 引数との違いは何ですか?
ありがとう
重複の可能性:
このメソッド シグネチャの省略記号 (…) は何ですか?
java: 任意の数のパラメーターをサポートする関数を作成するにはどうすればよいですか?
さて、私はいくつかの例を理解しようとしていますが、メイン メソッドでこの種の引数の配列定義を見つけました。この "..." の何が特別なのですか? 通常の String[] 引数との違いは何ですか?
ありがとう
これは、可変長引数リストに対する Java 5 の表記法です。これは文字列配列とほぼ同じですが、配列に自動的に結合される個々のパラメーターを渡すことができます。
void mymethod(String... a) {
for (String s : a) {
...
}
}
mymethod("quick", "brown", "fox");
これは、プログラムからメソッドを呼び出す場合にのみ意味があるため、main() でこの構文を使用することが望ましい理由がわかりません。ただし、機能します。
省略記号 (...) は可変引数です。これらは、任意の数の引数を持つメソッドを作成する場合に使用されます。Oracle では、varargs がどのように機能するかについて詳しく説明しています。
これは varargs と呼ばれ、その型 ( String
) の任意の数の引数を渡すことができることを意味します。
1.最終位置にある必要があります
2.配列として処理されます
... 可変引数に使用されます。
例えば
public void myMethod(Object... params) { }
params 変数はオプションであり、オブジェクトの null 許容配列として扱われます。