Generics
ジェネリクス(Generics)は型をパラメータとして扱えるようにし、インスタンス化時に具象型を束縛する型安全で再利用可能なコンテナとアルゴリズムを可能にする。
目的
型安全で再利用可能なコードを書き、重複と実行時型検査を避ける。
メカニズム
パラメータ化された型:List<T> は任意の型 T に対する List を提供する。Java は型消去を使用し(実行時にジェネリック情報なし)、C++ テンプレートは具象型ごとにコードを生成し、Rust は単相化する。共変性/反変性は部分型関係を制約する。
ユースケース
- コンテナライブラリの設計
- 型安全(タイプセーフ)な再利用
- API の型設計