Javaのジェネリックスをどのように使用しますか?
Javaにおいて、ジェネリクスは、コンパイル時にデータ型を確認・制限するメカニズムです。ジェネリクスを使用すると、コードの再利用性と可読性が向上します。
ジェネリックの基本的な使用法は次の通りです:
- クラスやメソッドの宣言で、尖括弧<>を使用してジェネリックパラメータを指定します。例えば、ジェネリッククラスを宣言する:
public class Box<T> {
private T content;
public void setContent(T content) {
this.content = content;
}
public T getContent() {
return content;
}
}
- オブジェクトを作成する際、具体的な型をジェネリックパラメーターとして指定することができます。例えば、整数を格納するBoxオブジェクトを作成する場合:
Box<Integer> intBox = new Box<>();
intBox.setContent(123);
int num = intBox.getContent();
- 例えば、文字列を格納するBoxオブジェクトを作成することができます。泛型パラメーターは、基本型や参照型を含む、任意の有効なJavaの型であることができます。
Box<String> strBox = new Box<>();
strBox.setContent("Hello");
String str = strBox.getContent();
- 例えば、ジェネリックはメソッドの戻り値の型やパラメータの型にも使用できます。ジェネリックメソッドを定義する場合を考えてみましょう。
public static <T> T getFirstElement(List<T> list) {
if (list != null && list.size() > 0) {
return list.get(0);
} else {
return null;
}
}
このようにして、引数の種類に基づいて返り値の種類を決定することができます。
これはジェネリックの基本的な使用方法ですが、ワイルドカードや上下限など、より複雑な使い方もあります。異なる用法は異なるシーンに適しており、具体的なニーズに応じて適切なジェネリックの使い方を選択することができます。