Was erasure necessary to maintain backwards compatibility?
Also what are you doing that you need type information at runtime?
Also what are you doing that you need type information at runtime?
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.