2007年10月15日月曜日

ジェネリクス

JDK 5.0 より導入された記述法

コレクションの記述

/* 従来型 */
List list1 = new ArrayList();
/* ジェネリクス */
List list2 = new ArrayList();
List list3 = new ArrayList();

list1.add("Conventional");
list2.add("Generics");
list3.add(new Integer(7));

String conventional = (String) list1.get(0);
String generics = list2.get(0);
/* java.lang.ClassCastException 発生 */
Integer i = (Integer)list1.get(0);
/* コンパイルエラー */
Integer i2 = (Integer)list2.get(0);


ClassCastException
継承関係のない型にキャストすると実行時エラーとなる。

ジェネリクスの使用によってこのようなキャストミスはコンパイル時に発見できる。

0 件のコメント: