総称型(Generics)
JDK 5.0 / JRE 5.0 | Generics |
強化された型の安全性
総称型(Generics)
Java 5.0(JDK 5.0 / JRE 5.0)から総称型(Generics)が取り入れられました。 Java 5.0 以降では、List<String> や Map<String, Integer> と定義することで、"文字列のリスト" や "文字列をキーとする整数" といった型をより的確に定義できるようになりました。単に List や Map と定義されているよりも用途が明確になります。
この List<String> 等を総称型(Generics Type)と呼びます。これに対してこれまでのパラメータ化されていない(<String>等がついていない)List は raw型 と呼ぶそうです。
コンパイラレベルでのチェックも強化され、 List<String> に String 以外の型の値を代入しようとするコードはコンパイルエラーとなるのも魅力です。
総称型の例
文字列しか入れられない ArrayList をの例はこのようになります。 stringList.add の部分で 文字列以外の型を引数に渡そうとするとコンパイル時にコンパイルエラーとなります。
List<String> stringList = new ArrayList<String>(); |
stringList.add("文字列データ"); |