6

次のメソッドを変更して、その引数をインターフェイスを実装する任意の型にできるようにしたいと思いComparableます。メソッドの戻り値の型は、そのパラメーター変数の型と同じである必要があります。

public static int max(int a, int b) {   
    if (a >b) 
        return a;  
    else 
        return b;
}

したがって、それを変更する際に を使用することもできます<T extends Comparable<T>>が、戻り値の型を同じにするにはどうすればよいでしょうか?

4

1 に答える 1

7

基本的に次のようなものが必要です。

public static <T extends Comparable<T>> T max(T a, T b) {
    int n = a.compareTo(b);
    if (n > 0)
        return a;
    if (n < 0)
        return b;
    return a;
}

もちろん、これを次のように単純化することもできます (@pickypg の通知に感謝します)。

public static <T extends Comparable<T>> T max(T a, T b) {
    return a.compareTo(b) < 1 ? b : a;
}
于 2012-09-29T00:38:35.303 に答える