Type Erasure is the reason you can't use builtin types as generic arguments. And in a lot of cases it forces you to cast.
And as type erasure happens very, very early in the compilation process, you lose a lot of static type information the compiler could act on or give you warnings.
No it wasn't necessary to maintain backwards compatibility. Type erasure was implemented to allow libraries to upgrade to generics without breaking compatibility with existing applications.
potatosareok2|10 years ago
Also what are you doing that you need type information at runtime?
codingbinary|10 years ago
And as type erasure happens very, very early in the compilation process, you lose a lot of static type information the compiler could act on or give you warnings.
dmm|10 years ago