本文へスキップ

ジェネリクスとは?

じぇねりくす

プログラミングにおいて、データ型を抽象化して汎用的なコードを記述する機能で、型安全性を保ちながら再利用性を高める仕組みです。

ジェネリクス(Generics)とは、プログラムコードを特定のデータ型に依存しない形で記述し、型を引数として受け取ることで、異なる型に対して同じロジックを安全に再利用できる言語機能です。Java、C#、TypeScript、Kotlin、Rustなど多くのモダンな言語でサポートされています。

ジェネリクスがない場合、例えばリストを管理するクラスを「整数用」「文字列用」「ユーザーオブジェクト用」と別々に作る必要があります。ジェネリクスを使えばList<T>のように型パラメータTを持つ1つのクラスで、あらゆる型のリストを型安全に扱えます。

ジェネリクスの主なメリットは以下の通りです。

  • コードの再利用:同じロジックを異なる型に対して使い回せる
  • 型安全性:コンパイル時に型の不一致を検出できる
  • 可読性の向上:型キャストが不要になりコードがすっきりする
  • パフォーマンス:Javaなどの消去ベースと異なり、C++やRustでは単相化(monomorphization)により型ごとに最適なコードが生成される

制約(境界)を付けることもでき、T extends Comparableのように「比較可能な型だけ受け付ける」といった条件をコンパイル時に強制できます。コレクション、アルゴリズム、データ構造など、汎用ライブラリの実装に欠かせない基盤技術です。

使い方・例文

JavaでArrayList<String>と宣言すると、そのリストには文字列しか追加できず、取り出した値も自動的にString型として扱えます。これがジェネリクスによる型安全なコレクションの典型例です。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語