3

重複の可能性:
2 つの汎用数値の値の比較

Numbers次のようにテストするためのメソッド(LongIntegerなど)をいくつか書きたいと思います。

public static <T extends Number> boolean isBetween(T min, T max, T number) {
    return min.compareTo(number) <= 0 && max.compareTo(number) >= 0; 
}

しかし、次のようなコンパイル エラーが発生します。

メソッド compareTo(T) は型 T に対して未定義です

どうすればこれを修正できますか?

4

2 に答える 2

3

Numberは実装していませんComparable(理由については、なぜ java.lang.Number は Comparable を実装しないのですか?を参照しNumberてください)。

public static <T extends Number & Comparable<T>> boolean isBetween ...
于 2012-12-29T19:09:38.367 に答える
0

キャストを行う必要があります。以下は動作するはずです

return ((Comparable<T>) min).compareTo(number) <= 0 && ((Comparable<T>) max).compareTo(number) >= 0;
于 2012-12-29T19:16:48.950 に答える