Javaにおいて、String… と String[] の違いを説明する

Java

Java 

説明

Javaにおいて、String… と String[] の違いを説明します。

まず、String[] は配列を表します。具体的には、複数のString要素を持つ固定サイズの配列です。String[] に要素を追加するには、配列のサイズを変更する必要があります。

一方、String… は可変長引数を表します。つまり、0個以上のString要素を受け取ることができます。String… は、引数として渡されたString要素を自動的に配列に変換して処理することができます。また、メソッドの呼び出し元が引数を渡さなかった場合には、空の配列が自動的に作成されます。

public void printStrings(String... strings) {
    for (String s : strings) {
        System.out.println(s);
    }
}

このメソッドは、0個以上のString要素を引数として受け取り、それらを順番に出力します。このメソッドを呼び出す際には、以下のように引数を指定できます。

printStrings("foo", "bar", "baz"); // "foo", "bar", "baz"が順に出力される

また、以下のように、String[] を引数として渡すこともできます。

String[] strings = {"foo", "bar", "baz"};
printStrings(strings); // "foo", "bar", "baz"が順に出力される

しかし、以下のように、String[] をそのまま引数として渡すことはできません。

printStrings({"foo", "bar", "baz"}); // コンパイルエラーになる

この場合には、以下のように、String[] を配列として展開してから渡す必要があります。

printStrings(new String[]{"foo", "bar", "baz"}); // "foo", "bar", "baz"が順に出力される

コメント

タイトルとURLをコピーしました