5

不要なコードを書くこともあります。私の質問は非常に簡単です: 次のような方法はありますか?

/** @return true if a given value is inside the range. */
public static boolean range(min, max, value)

Googleで見つけられませんでした。存在しないからでしょうか?

4

5 に答える 5

3

メソッドを持つ型付きRangeクラスを作成できます。within

public class Range<T extends Comparable<T>> {

    private final T min;
    private final T max;

    public Range( T min, T max ) {
        this.min = min;
        this.max = max;
    }

    public boolean within( T value ) {
        return min.compareTo(value) <= 0 && max.compareTo(value) >= 0;
    }
}

テストのグループで最小値と最大値が同じであるrange場合、すべてのテストでオブジェクトを再利用できます。

FWIW、これはちょっと便利そうです!

于 2012-06-11T09:48:05.243 に答える
3

Apache Commons Lang には、 NumberRangeを含む多数の Range 実装があります。

Commons Lang 3 には一般的な実装があります。

于 2012-06-13T03:46:44.700 に答える
2

うーん...

value >= min && value <= max

そのための関数が本当に必要な場合は、自分で簡単に書くことができますか?

于 2012-06-10T23:06:07.040 に答える
2

存在しません。

そのための「賢明な」場所は Math モジュールにありますが、式で非常に単純に表現されているため

min < value && value < max

少し過剰に思えます。

于 2012-06-10T23:06:31.797 に答える