Javaのジェネリックスの使い方は何ですか?
Javaでジェネリックスを使用する際は、次の手順に従うことができます。
- クラスにジェネリックを宣言する方法は、クラス名の後に尖括弧<>でジェネリックパラメータを追加することです。たとえば、class MyClass { }は、ジェネリックパラメータTを持つクラスを表します。
- ジェネリッククラスの使用:クラスのインスタンスを作成する際に、具体的な型パラメータを指定します。例えば、MyClass myObj = new MyClass();は、String型のTを指定したジェネリッククラスのインスタンスを作成することを示しています。
- ジェネリックメソッドの宣言:ジェネリッククラスの宣言と同様に、メソッド名の後に尖括弧<>を使用してジェネリックパラメータを追加します。例えば、public void myMethod(T obj) { }は、ジェネリックパラメータTを持つメソッドを示しています。
- ジェネリックメソッドの使用:メソッドの呼び出し時に、必要に応じて具体的な型パラメータを指定したり、コンパイラーに型パラメータを自動推論させることができます。例えば、myMethod(“Hello”);は、myMethodメソッドを呼び出し、String型の引数を1つ渡すことを示します。
- ジェネリックワイルドカード:時々、ジェネリックパラメータの具体的なタイプがわからない場合、ワイルドカード「?」を使って表すことができます。例えば、List<?> myList = new ArrayList();は、具体的な要素の型が不明なジェネリックリストを作成することを表します。
- ジェネリックの制限:extendsキーワードを使用してジェネリックパラメータのタイプ範囲を制限できます。たとえば、public void myMethod(T obj) { } は、ジェネリックパラメータTがNumberクラスまたはそのサブクラスであることを制限することを示しています。
Javaではジェネリクスを使用することで、コードの柔軟性と安全性を高めることができます。ジェネリクスを使うと、コンパイル時に型チェックが行われ、ランタイムエラーを減らすことができます。