var の型は宣言時に決まる
このコードを実行するとどうなるか。
public class Main {
public static void main(String[] args) {
var count = 10;
count = "ten";
System.out.println(count);
}
}
- A
tenと出力される - B
10と出力される - C 実行時に例外が発生する
- D コンパイルエラーになる
正解と解説を見る
正解: D
- A: count は最初の代入で int に決まっているので、String は代入できません。
- B: 実行まで進まないので、何も出力されません。
- C: 型の不一致はコンパイル時に見つかります。
- D: var で宣言した変数の型は宣言時に int に決まるので、String を代入するとコンパイルエラーです。
ポイント
var count = 10;で count は int 型に決まります。後から String を代入することはできません。- var は「何でも入る型」ではなく、コンパイラが型を推論するだけです。