Genericsの履歴

1.4まではコレクション(ListとかMapとか)の中身の型は全部Objectになってたので取り出すときにいちいちキャストする必要があった。Generics使うと型を決められるのでキャストがいらなくなって便利。

Number[]にはIntegerやDoubleを入れられるけど、List<Number>にはIntegerやDoubleは入れられず、Numberしか入れられない。List<?>やもう少し厳密にしてList<? extends Number>とする必要がある。

これでJavaがよりJavaっぽくなったと思う。