総称型で作っておけば、後で使いまわせます。
総称型でstaticメソッドを作るサンプル
StringとIntegerの2つのリストから、それぞれ最大値を取得します。
 最大値を取得するメソッドは、総称型でstaticメソッドにします。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | import java.util.Arrays; import java.util.Comparator; import java.util.List; public class GenericsMethodTest {     public static void main(String[] args) {         //1つめ(String)         List<String> list1 = Arrays.asList("a","c","b");         String s = max(list1, Comparator.naturalOrder());         System.out.println("list1:" + s);         //2つめ(Integer)         List<Integer> list2 = Arrays.asList(10, 100 , 50);         int i = max(list2, Comparator.naturalOrder());         System.out.println("list2:" + i);     }     public static <T> T max(List<T> list, Comparator<T> c) {         T maxT = null;         for (T t : list) {             if(maxT == null || c.compare(t, maxT) > 0) {                 maxT = t;             }         }         return maxT;     } } | 
実行結果
StringとIntegerの2つのリストから取得した、それぞれの最大値が出力されます。
| 1 2 | list1:c list2:100 | 
サンプルの解説
最大値を取得するメソッドは、総称型でstaticメソッドです。
 また、クラス自体に型パラメータ(
 メソッドの修飾子と返り値の間に型パラメータを記述することで、メソッド単位で違う型パラメータを記述することができます。
ユーティリティのようなクラスで使うことができますね。













