Hatena Blog Tags

Generics

(コンピュータ)
じぇねりっくす

総称型。

JavaやC++Templateにおいて、コレクションフレームワークで良く使われる、あるオブジェクトに入れ子(集約(Aggregation, Composition)など)になっている別のオブジェクトの型を限定することで、余計なバグを減らすもの。

これにより、そのオブジェクトに入れ子になっているオブジェクトを取り出すたびにそのオブジェクトの型が何型であるかを調べる必要がなくなる。

Javaの例

List<String> list = new ArrayList<String>();
// Map<CharSequence> map = new HashMap<>(); // Java7以降では右辺の型引数を省略出来る
list.add("リストに文字列追加");
//list.add(1); //数字を追加。String型ではないためエラーとなる。

for (String element : list) {
// listの中に入っているものはすべてStringとわかっているので、明示的にダウンキャストする必要はない。
    System.out.println(element);
}

ここでListやArrayListのようなインタフェースやクラスのことを「パラメタライズドクラス(インタフェース)」「ジェネリッククラス(インタフェース)」という。
参考 : Java Generics

このタグの解説についてこの解説文は、すでに終了したサービス「はてなキーワード」内で有志のユーザーが作成・編集した内容に基づいています。その正確性や網羅性をはてなが保証するものではありません。問題のある記述を発見した場合には、お問い合わせフォームよりご連絡ください。

関連ブログ