加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 检入范围前置条件

发布时间:2020-12-15 05:07:20 所属栏目:Java 来源:网络整理
导读:我喜欢番石榴的前提条件,但我真正需要的是另外一种方法 – 检查数字是否在范围内.像这样的Smt //probably there should be checkStateInRange alsopublic static void checkArgumentInRange(double value,int min,int max) { if (value min || value max) {
我喜欢番石榴的前提条件,但我真正需要的是另外一种方法 – 检查数字是否在范围内.像这样的Smt

//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,IllegalStateException或IndexOutOfBoundsException.广义范围检查没有比抛出IllegalArgumentException更具体的异常.
> checkArgument和checkState可以完成您需要的一切.你可以写checkArgument(值> = min&& value< = max,...).您正在检查的内容很简单明了.
另外:

>这里有太多不同的组合. @rsp提及的独家/包含界限等
>限制只允许对边界进行注入,所以你真的想在那里允许任何Comparable.
>此时您会注意到您只是检查该值是否包含在Range中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读