番石榴是否可以在 "between" 两个条件下建立范围?

Is Guava possible to build range with two conditions as "between"?

我正在努力制定范围条件来评估值。
为了检查每个符号的值,我制作了切换条件以灵活地生成用于评估值的语句。

以下代码是否可用于检查值? (例如 300 <= 值 <= 500)。
试了几次,都无法射程。
(如果这些方法无效,我会把它们改成.closed等)

谢谢!

public void symbolToRange(RangeSet<Integer> rangeSet, String symbol, int targetNum) {
    switch (symbol) { // <, <=, =, >=, >
        case ">":
            // targetNum < value
            rangeSet.add(Range.greaterThan(targetNum));
            break;
        case ">=":
            // targetNum <= value
            rangeSet.add(Range.atLeast(targetNum));
            break;
        case "<":
            // targetNum > value
            rangeSet.add(Range.lessThan(targetNum));
            break;
        case "<=":
            // targetNum >= value
            rangeSet.add(Range.atMost(targetNum));
            break;
        case "=":
            rangeSet.add(Range.singleton(targetNum));
            break;
    }
}

我会使用函数 return a Range 而不是添加到 RangeSet,并在无效符号上抛出异常:

public static Range<Integer> symbolToRange(String symbol, int targetNum) {
    switch (symbol) { // <, <=, =, >=, >
        case ">":
            // targetNum < value
            return Range.greaterThan(targetNum);
        case ">=":
            // targetNum <= value
            return Range.atLeast(targetNum);
        case "<":
            // targetNum > value
            return Range.lessThan(targetNum);
        case "<=":
            // targetNum >= value
            return Range.atMost(targetNum);
        case "=":
            return Range.singleton(targetNum);
        default:
            throw new IllegalArgumentException("Invalid symbol: " + symbol);
    }
}

除了这些更改之外,您的功能似乎还不错。