null を int に取り出す
このコードを実行するとどうなるか。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(null);
int n = list.get(0);
System.out.println(n);
}
}
- A
0と出力される - B
nullと出力される - C 実行時に例外が発生する
- D コンパイルエラーになる
正解と解説を見る
正解: C
- A: null が 0 に変換されることはありません。
- B: int 型の変数に null は入りません。
- C: Integer の null を int に変換 (アンボクシング) しようとして NullPointerException が発生します。
- D: Integer から int への代入は文法上正しいので、コンパイルできます。
ポイント
- ArrayList には null を追加できます。
int n = list.get(0);で Integer から int への変換 (アンボクシング) が行われ、null なので NullPointerException です。