有时我们会编写不必要的代码。我的问题非常简单:是否有类似以下的方法?
/** @return true if a given value is inside the range. */
public static boolean range(min, max, value)
我没在Google上找到它。那是因为它不存在吗?
答案 0 :(得分: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,这看起来有点方便!
答案 1 :(得分:3)
Apache Commons Lang有许多Range实现,包括NumberRange。
Commons Lang 3有generic implementation。
答案 2 :(得分:2)
嗯...
value >= min && value <= max
当然,如果你真的需要一个功能,你可以自己轻松编写它吗?
答案 3 :(得分:2)
它不存在。
一个'明智'的地方就是数学模块,但因为它只是在表达式中表达了
min < value && value < max
似乎有点过分。
答案 4 :(得分:0)
public static boolean withinRange(min, max, value){
return (value >= min && value <= max);
}