5

有时我们会编写不必要的代码。我的问题很简单:有没有像下面这样的方法?

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

我在谷歌上没找到。是因为它不存在吗?

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;
    }
}

如果一组测试的 min 和 max 相同,您可以将您的range对象重用于所有测试。

FWIW,这似乎有点方便!

于 2012-06-11T09:48:05.243 回答
3

Apache Commons Lang 有许多 Range 实现,包括NumberRange

Commons Lang 3 有一个通用的实现

于 2012-06-13T03:46:44.700 回答
2

嗯……

value >= min && value <= max

当然,如果您真的需要一个功能,您可以轻松地自己编写它吗?

于 2012-06-10T23:06:07.040 回答
2

它不存在。

一个“明智”的地方是在数学模块中,但因为它在表达式中很简单地表达

min < value && value < max

这似乎有点过分了。

于 2012-06-10T23:06:31.797 回答
0
public static boolean withinRange(min, max, value){
    return (value >= min && value <= max);
}
于 2018-04-11T21:52:03.393 回答