Java中的Range(最小、最大、值)函数

Java中的Range(最小、最大、值)函数,java,methods,Java,Methods,有时我们编写不必要的代码。我的问题很简单:有没有像下面这样的方法 /** @return true if a given value is inside the range. */ public static boolean range(min, max, value) 我没有在谷歌上找到它。那是因为它不存在吗?嗯 value >= min && value <= max value>=min&&value它不存在 一个“合理”的位置应该是在数学模块中,但是因为它

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

/** @return true if a given value is inside the range. */
public static boolean range(min, max, value)
我没有在谷歌上找到它。那是因为它不存在吗?

value >= min && value <= max
value>=min&&value它不存在

一个“合理”的位置应该是在数学模块中,但是因为它非常简单地用表达式表示

min < value && value < max
min

这似乎有点过分。

您可以创建一个类型化的
范围
类,该类在
方法中有一个

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;
    }
}
公共类范围{
私人决赛T分钟;
私人最终T最大值;
公共范围(T最小值,T最大值){
this.min=min;
this.max=max;
}
内部的公共布尔值(T值){
返回最小比较值(值)=0;
}
}
如果一组测试的最小值和最大值相同,则可以对所有测试重用
范围
对象


FWIW,这似乎很方便

apachecommons-Lang有多种实现,包括

Commons Lang 3有一个{
返回(另一方面,value>=min&&value,
Math.abs()
存在,这是一个更简单的implvalue>=min&&value@Ivan Seidel:它有29个字符。函数调用将有23个字符。我敢打赌,你可能会花更多的时间来处理更麻烦的问题。-1,我相信OP是在请求一个库替代方案,以支持更易于识别的模式,并避免编写自定义实现。这我知道这很简单,因为Math.abs()很简单,但比Math好(val)嗯,
abs
是一个具有数学等价物的Java方法。此外,它还返回一个整数。
range
是一个布尔测试,返回true或false,没有真正的数学等价物。事实上,在现实世界中,一个值在某个数字范围内的测试可能会从pr中得到一个更有用的名称问题域,例如
isAValidChoice(最小、最大、值)
…实际上,
min
max
很可能是属于提供
isAValidChoice
方法的任何类的字段。@opdecrkel感谢您选择它。我只是在没有IDE的情况下输入了它,没有思考!现在修复了-干杯不要命名它
rangeCheck()
,Oracle将起诉您。您能否详细说明您的答案,以及为什么Oracle成功回答了这个问题?——摘自《评论》
public static boolean withinRange(min, max, value){
    return (value >= min && value <= max);
}