Hacker News new | ask | show | jobs
by positr0n 308 days ago
Occasionally it is really useful to be able to do something like `new T()`. Without reified generics that is not possible.
1 comments

new T? What's wrong with the old one?

Jokes aside, what's the use case for not knowing what T is until runtime?

Pretty much all polymorphism works by not knowing the concrete type til runtime. If you have an Animal reference to a Dog instance, any method you call on it is resolved at runtime, because the reference knows the type. Reified generics do the same for type parameters, whereas erased types are only used for type checking at compile time.
Nah I think I'd just prefer to figure out the types in type-checking phase, then erase and get on with things.

I don't buy that most polymorphism is dynamic.

No example of 'new T()' (which wouldn't be improved by static typing was given) so I got nothing else to say.