Sta*_*lin 3 java preconditions guava
我喜欢番石榴的前提条件,但我真正需要的是另外一种方法 - 检查数字是否在范围内.像这样的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));
}
}
Run Code Online (Sandbox Code Playgroud)
我相信我并不孤单,这是一个很常见的情况.但这种方法不存在.有没有理由不把这些方法放进去com.google.common.base.Preconditions?
我说的原因有很多.以下是主要内容:
Preconditions方法抛出一个特定的异常类型,它会检查:NullPointerException,IllegalArgumentException,IllegalStateException或IndexOutOfBoundsException.广义范围检查没有比IllegalArgumentException抛出更具体的异常.checkArgument并checkState做你需要的一切.你可以写checkArgument(value >= min && value <= max, ...).您正在检查的内容很简单明了.另外:
ints为边界,所以你真的想允许任何Comparable那里.我认为你可以通过使用checkArgument():
checkArgument(min < value && value < max, "%s must be in range [%s, %s]", value, min, max);
Run Code Online (Sandbox Code Playgroud)
如果将消息字符串添加到您自己的常量定义中,那么它就没有太大的功能,并且具有您需要的所有灵活性.
| 归档时间: |
|
| 查看次数: |
1437 次 |
| 最近记录: |