1. ホーム
  2. java

[解決済み] Javaでパラメータの型の横にある3つの点は何を意味するのですか?

2022-02-19 06:31:13

質問

次の3つの点は何ですか? String の意味は?

public void myMethod(String... strings){
    // method body
}

解決方法は?

これは、0個以上のStringオブジェクト(またはそれらの単一の配列)を、そのメソッドの引数として渡すことができることを意味します。

こちらの「"引数の任意数"」をご覧ください。 http://java.sun.com/docs/books/tutorial/java/javaOO/arguments.html#varargs

あなたの例では、次のどれかのように呼び出すことができます。

myMethod(); // Likely useless, but possible
myMethod("one", "two", "three");
myMethod("solo");
myMethod(new String[]{"a", "b", "c"});

重要なお知らせです。 この方法で渡される引数は、たとえひとつであっても常に配列となります。メソッド本体でそのように扱うことを確認してください。

重要な注意事項 2: を取得する引数は ... は、メソッドのシグネチャの最後になければなりません。つまり myMethod(int i, String... strings) は大丈夫ですが myMethod(String... strings, int i) は大丈夫ではありません。

Vash さんのコメントで明確化されたことに感謝します。