文字列配列は、次の方法で宣言および初期化できます。
String[] str = {"A", "B"};
しかし、引数として文字列配列を受け入れるメソッドの場合、なぜ同じものをそこで使用できないのでしょうか。
例:以下のコードで、show()fromからへの呼び出しを置き換えると、show(str);
コンパイラshow({"A" "B"});
エラーが表示されます。なんで?
public class StringArray {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] str = {"A", "B"};
show(str);
}
static void show(String[] s) {
System.out.println(s[0] + s[1]);
}
}
表示されるコンパイラエラーは次のとおりです。
StringArray.java:9: illegal start of expression
show({"A", "B"});
^
StringArray.java:9: ';' expected
show({"A", "B"});
^
StringArray.java:9: illegal start of expression
show({"A", "B"});
^
StringArray.java:9: ';' expected
show({"A", "B"});
^
StringArray.java:9: illegal start of type
show({"A", "B"});
^
StringArray.java:11: class, interface, or enum expected
static void show(String[] s) {
^
StringArray.java:13: class, interface, or enum expected
}
^
7 errors
使用show(new String[] {"A", "B"});
も可能です。それらをメソッド引数として渡す場合とどうnew String[]{"A", "B"}
違うのですか?{"A", "B"}
よろしくお願いします!