型パラメータと違う型を追加
このコードを実行するとどうなるか。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add(1);
System.out.println(list);
}
}
- A
[a, 1]と出力される - B 実行時に例外が発生する
- C コンパイルエラーになる
- D
[a]と出力される
正解と解説を見る
正解: C
- A: 実行まで進まないので、何も出力されません。
- B: 型の不一致はコンパイル時に見つかります。
- C:
ArrayList<String>には String しか追加できないので、1 を add するとコンパイルエラーです。 - D: 実行まで進まないので、何も出力されません。
ポイント
ArrayList<String>には String しか追加できません。型が合わないとコンパイルエラーです。<>を省略した ArrayList (raw 型) なら何でも追加できますが、型の安全性が失われます。