Javaのジェネリクスにおける「タイプパラメータを持つクラスとメソッドの定義」は、型の再利用性と型安全性を高めるために非常に重要な概念です。以下に詳しく説明します。
1. タイプパラメータとは
タイプパラメータ(Type Parameter)は、クラスやメソッドを定義する際に「扱うデータ型を後から決定できる」ようにするための記号です。通常、T(Type)、E(Element)、K(Key)、V(Value)などの記号が使われます。
2. ジェネリクスクラスの定義
書式:
例:
このクラスは任意の型を扱える「箱」です。例えば以下のように使います:
利点:
-
型安全:コンパイル時に型の整合性をチェックできる。
-
汎用性:同じコードを複数の型に対して使える。
3. ジェネリクスメソッドの定義
書式:
例:
このメソッドは、渡された任意の型の値をそのまま返します。
ポイント:
-
<T>は戻り値型の前に書き、メソッドがジェネリックであることを明示します。 -
static メソッドにも使用可能です。
4. 複数のタイプパラメータ
クラスやメソッドに複数の型パラメータを指定することも可能です。
例:
5. 制限付きタイプパラメータ(上限境界)
型に「あるクラスのサブクラスに限定する」といった制約を加えることもできます。
例:
このメソッドは Number またはそのサブクラス(Integer, Double など)だけを受け取ることができます。
まとめ
| 用法 | 説明 |
|---|---|
<T> |
ジェネリクスで型パラメータを宣言 |
class Box<T> |
任意の型Tを扱うクラスを定義 |
<T> T method(T arg) |
任意の型Tを扱うメソッドを定義 |
<T extends クラス> |
型Tに制限を加える |
生成日:2025/05/03