ジェネリクスを使ったクラスのListについて

Listは配列と違い、リスト名.add()をすることで可変長の配列を作ることが出来ます。しかしListはどのような型でも入れることが出来るため、取り出す際はキャストが必要です。そこで、ジェネリクスという文法によってListに入れる型を指定し、型違い等のエラーをなくすことが出来ます。

List<String> hoge = new ArrayList<String>();
hoge.add("あ");hoge.add(”い”);hoge.add(”う”);
System.out.println(hoge.get(0));//あが出力される

<>の中身はクラスでなければならないためラッパークラスというものを用いますが、他にもクラス名を入れることで動的な戻り値をもつリストを作ることが出来るそうです。 ここら辺はまだあまり理解が進んでいないところだったのでもう少し勉強したいと思います…