繁体   English   中英

Java中的范围(最小值,最大值,值)函数

[英]Range(min, max, value) function in Java

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

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

我没在Google上找到它。 那是因为它不存在吗?

您可以创建一个具有within方法的类型化Range类:

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,这看起来有点方便!

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

Commons Lang 3有一个通用的实现

嗯...

value >= min && value <= max

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

它不存在。

一个'明智'的地方就是在Math模块中,但因为它在表达式中非常简单地表达出来

min < value && value < max

看起来有点过分了。

public static boolean withinRange(min, max, value){
    return (value >= min && value <= max);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM