top | item 10701788

(no title)

codingbinary | 10 years ago

And don't forget Java's type erasure. Still wondering how they could actually call that a FEATURE.

discuss

order

potatosareok2|10 years ago

Was erasure necessary to maintain backwards compatibility?

Also what are you doing that you need type information at runtime?

codingbinary|10 years ago

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.

dmm|10 years ago

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.