Generics
Generics erlauben es, Typen als Parameter zu verwenden, und ermöglichen typsichere, wiederverwendbare Container und Algorithmen, die konkrete Typen bei der Instanziierung binden.
Zweck
Typsicheren, wiederverwendbaren Code schreiben und Duplikation sowie Laufzeit-Typprüfungen vermeiden.
Mechanismus
Parametrisierte Typen: List<T> stellt eine List für jeden Typ T bereit. Java nutzt Typlöschung (keine Generics-Information zur Laufzeit), C++-Templates erzeugen Code für konkrete Typen, Rust monomorphisiert. Ko-/Kontravarianz beschränkt Subtypbeziehungen.
Anwendungsfälle
- Container-Bibliotheksdesign
- Typsichere Wiederverwendung
- API-Design