Yeah, that does not mean type erasure. There were just no generics. That is just making use of polymorphism in the language. At no point is there a difference between what the language knows a container can contain, and what the runtime knows it can contain. There is nothing erased.