▽1
●
a-kuma3 ●60ポイント ベストアンサー |
「ジェネリックス(Generics)」と言います。
http://www.atmarkit.co.jp/fjava/rensai4/java5eclipse19/java5eclipse19_1.html
java だと、全てのクラスが元をたどると java.lang.Object から派生しているので、どのようなオブジェクトを指すような変数を定義できるのですが、そのメソッドを呼ぶときには、定義をしているインターフェースなり、クラスなりにダウンキャストしてあげる必要があります。
不適切なクラスのインスタンスを入れてしまった場合には、実行時に ClassCastException が送出されますが、これだと動かしてみるまで、間違いがあったことに気がつきません。
ジェネリックスを導入することで、コンパイルする時点で、不適切なクラスのインスタンスを代入してしまっている間違いを検出することができます。
c++ だと、テンプレートですね。
総称型(ジェネリック・ジェネリクス)ですね。
言語仕様はこの辺を参照してください。
http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.1.2
日本語での解説は、「java 総称型」「java ジェネリック」「java generic」などで検索すればいいでしょう
一例としてはこの辺とかわかりやすくていいのでは
http://www.ne.jp/asahi/hishidama/home/tech/java/generics.html