Javaでは、ジェネリックスを使用して、同じタイプの2つのComparableオブジェクトをパラメーターとして受け取り、大きい方のオブジェクトを返すmax関数を作成するにはどうすればよいですか?
私は試した:
public static <T extends Comparable> T max(T obj1, T obj2)
{
return ( ((obj1).compareTo(obj2) >= 0) ? obj1 : obj2);
}
(両方が等しい場合はobj1を返します。)
この方法は、 http://www.informit.com/articles/article.aspx?p = 170176&seqNum= 3で見つけたコードに基づいています。
ただし、コンパイルすると、次の警告が表示されます(-Xlint:uncheckedでコンパイル):warning:[unchecked]未加工のタイプjava.lang.ComparableのメンバーとしてのcompareTo(T)へのチェックされていない呼び出し