gpt4 book ai didi

java - 检查范围前提条件

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:30:56 26 4
gpt4 key购买 nike

我喜欢 guava 前提条件,但我真正需要的是另一种方法 - 检查数字是否在范围内。像这样

//probably there should be checkStateInRange also
public static void checkArgumentInRange(double value, int min, int max) {
if (value < min || value > max) {
throw new IllegalArgumentException(String.format("%s must be in range [%s, %s]", value, min, max));
}
}

我相信我并不孤单,这是一个很常见的案例。但是这样的方法不存在。有什么理由不把这样的方法放在 com.google.common.base.Preconditions 中吗?

最佳答案

我要说的原因有很多。以下是主要内容:

  • “值超出范围”没有标准的 Java 异常类型。请注意,每个 Preconditions方法为其检查的内容抛出特定的异常类型:NullPointerException , IllegalArgumentException , IllegalStateExceptionIndexOutOfBoundsException .广义范围检查不会有比 IllegalArgumentException 更具体的异常 throw 。
  • checkArgumentcheckState做你需要的一切。你可以只写 checkArgument(value >= min && value <= max, ...) .您要检查的内容简单明了。

另外:

  • 这里您可能需要太多不同的组合。 @rsp 提到的独占/包含边界等。
  • 限制为只允许 int s 代表边界,所以你真的很想允许任何 Comparable那里。
  • 此时您注意到您只是在检查该值是否包含在 Range 中。 .

关于java - 检查范围前提条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8217855/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com