Java ジェネリクス
型安全なコードを書くためのジェネリクスを学びます。
なぜジェネリクスが必要か
ジェネリクスなしの問題
// ジェネリクスを使わない場合
List list = new ArrayList();
list.add("hello");
list.add(123); // 異なる型も入れられてしまう
// 取り出すときにキャストが必要
String s = (String) list.get(0); // OK
String s2 = (String) list.get(1); // ClassCastException! (実行時エラー)
ジェネリクスありの解決
// ジェネリクスを使う場合
List<String> list = new ArrayList<>();
list.add("hello");
// list.add(123); // コンパイルエラー!(コンパイル時に検出)
// キャスト不要
String s = list.get(0); // 型安全