It's the price to pay for implementing generics via type erasure, not for getting functional features in a statically typed language. http://stackoverflow.com/a/24421331
This isn't necessarily due to erasure. This actually about boxing. Reified generics is one way to solve this. Another option is tagged pointers. That is how OCaml handles this[1].
eeperson|11 years ago
[1] http://stackoverflow.com/questions/3773985/why-is-an-int-in-...
edit: clarity