配列の初期化子と var
このコードを実行するとどうなるか。
public class Main {
public static void main(String[] args) {
var a = {1, 2, 3};
System.out.println(a.length);
}
}
- A
3と出力される - B 実行時に例外が発生する
- C コンパイルエラーになる
- D 何も出力されない
正解と解説を見る
正解: C
- A: 実行まで進まないので、何も出力されません。
- B: 型を推論できないのはコンパイル時の誤りです。
- C:
{1, 2, 3}だけでは配列の型が決まらないので、var には使えません。 - D: 実行まで進まないので、何も出力されません。
ポイント
{1, 2, 3}だけでは配列の型が決まらないので、var には使えません。var a = new int[] {1, 2, 3};と型を書けば使えます。