生のコレクションからジェネリック型へ
生のコレクション型と取得時のキャストを、コンパイル時のジェネリック型安全性に置き換えます。
コード比較
✕ Java 1.4
List names = new ArrayList();
names.add("Duke");
String name = (String) names.get(0);
✓ Java 5+
List<String> names = new ArrayList();
names.add("Duke");
String name = names.get(0);
このコードに問題がありますか? お知らせください。
モダンな方法が優れている理由
コンパイル時の安全性
不正な要素型は実行時ではなくコンパイル時に検出されます。
取得時のキャストが不要
値は宣言された要素型を保持します。
自己文書化されたAPI
コレクション宣言が、含まれる内容を正確に示します。
旧来のアプローチ
生のコレクション
モダンなアプローチ
ジェネリックコレクション
JDKバージョン
5
難易度
初級
JDKサポート
生のコレクションからジェネリック型へ
利用可能
ジェネリックはJDK 5(2004年9月)以降利用可能です。
仕組み
生のコレクションは任意のオブジェクト型を受け入れ、型エラーはキャストが実行されるまで先延ばしにされます。ジェネリック型引数を使うことで、 コンパイラが書き込みと読み取りを検証し、キャストが不要になり、IDEの支援が向上し、API契約が明示的になります。生の型は通常、慎重に切り離された レガシーとの相互運用境界にのみ残すべきです。
関連ドキュメント
証明