ジェネリックメソッドの定義
ジェネリックメソッドは、メソッドの引数をメソッド呼び出しの際に決められるメソッドのことです。ジェネリッククラスとは独立したものなので、混同しないように注意してください。
たとえば以下は、Arraysクラス(java.utilパッケージ)のコードを抜粋したものです。copyOfメソッドは、与えられた配列をコピーするためのメソッドです。
public static <T,U> T[] copyOf(U[] original, int newLength, Class<? extends T[]> newType) { T[] copy = ((Object)newType == (Object)Object[].class) ? (T[]) new Object[newLength] : (T[]) Array.newInstance(newType.getComponentType(), newLength); System.arraycopy(original, 0, copy, 0, Math.min(original.length, newLength)); return copy; }
ジェネリックメソッドでは、戻り値の直前に<…>の形式で型パラメータを宣言します。宣言された型パラメータは、戻り値型や引数型として利用できます。
ジェネリックメソッドは、通常のメソッドと同じく以下のように呼び出せます。
String[] data = { "X", "Y", "Z" }; String[] result = Arrays.copyOf(data, 3); // 結果:[X, Y, Z]
また、メソッドの前に明示的に型を指定することもできます。
String[] result = Arrays.<String>copyOf(data, 3);