ひよっこSEの備忘録

20卒の未経験エンジニアの日々の備忘録です。

ジェネリクスとは

 研修の復習です

***

 

ジェネリクスとは

List<任意の型>arrayList = new ArrayList<任意の型>*1();

 Listなどのデータ型で見る、型を<>で囲っているものをジェネリクス(総称型)といいます。

Listに入れる型を指定することができます。

(ex.String型が入っているときは文字列 など)

 

メリット

コードのミスが見つけやすい

指定されている型以外のものを入れるとコンパイルエラーとなります。

Listには違う型の値を入れることも可能なため、ジェネリクスがないと同じリストに違う型を入れてしまう可能性があります。

List arrayList = new ArrayList();

arrayList.add("a");

arrayList.add(10);

この場合、arrayListの中身を出力する際にaを出せても10が出力不可能となります。

(ClassCastExceptionという例外にあたります。例外については簡単な内容ですが前記事をどうぞ)

このようなエラーはジェネリクスを用いることで回避することができます。

 

出力する際にキャスト*2する必要がない

List自体には型を決めることができません。

ジェネリクスを用いてString型を入れている場合は型が確定しているので、出力する際にいちいちキャストをせずに行うことができます。

 

 

*1:<>の中を書くのは左辺だけでも動くようです。(Java7以降)

しかし研修では触れていないため、この記事中では左右両方に書いています。

*2:キャストとは型を変換することを言います。