mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
!436 feat 增加checkBetween的几个重载方法
Merge pull request !436 from Uncarbon/v5-dev
This commit is contained in:
commit
d204d58057
@ -16,6 +16,9 @@ import java.util.function.Supplier;
|
|||||||
*/
|
*/
|
||||||
public class Assert {
|
public class Assert {
|
||||||
|
|
||||||
|
private static final String TEMPLATE_VALUE_MUST_BE_BETWEEN_AND = "The value must be between {} and {}.";
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 断言是否为真,如果为 {@code false} 抛出给定的异常<br>
|
* 断言是否为真,如果为 {@code false} 抛出给定的异常<br>
|
||||||
*
|
*
|
||||||
@ -834,6 +837,38 @@ public class Assert {
|
|||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查值是否在指定范围内
|
||||||
|
*
|
||||||
|
* @param value 值
|
||||||
|
* @param min 最小值(包含)
|
||||||
|
* @param max 最大值(包含)
|
||||||
|
* @param errorSupplier 错误抛出异常附带的消息生产接口
|
||||||
|
* @throws X if value is out of bound
|
||||||
|
* @return 经过检查后的值
|
||||||
|
* @since 5.7.15
|
||||||
|
*/
|
||||||
|
public static <X extends Throwable> int checkBetween(int value, int min, int max, Supplier<? extends X> errorSupplier) throws X {
|
||||||
|
if (value < min || value > max) {
|
||||||
|
throw errorSupplier.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查值是否在指定范围内
|
||||||
|
*
|
||||||
|
* @param value 值
|
||||||
|
* @param min 最小值(包含)
|
||||||
|
* @param max 最大值(包含)
|
||||||
|
* @return 经过检查后的值
|
||||||
|
* @since 5.7.15
|
||||||
|
*/
|
||||||
|
public static int checkBetween(int value, int min, int max, String errorMsgTemplate, Object... params) {
|
||||||
|
return checkBetween(value, min, max, () -> new IllegalArgumentException(StrUtil.format(errorMsgTemplate, params)));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检查值是否在指定范围内
|
* 检查值是否在指定范围内
|
||||||
*
|
*
|
||||||
@ -844,12 +879,41 @@ public class Assert {
|
|||||||
* @since 4.1.10
|
* @since 4.1.10
|
||||||
*/
|
*/
|
||||||
public static int checkBetween(int value, int min, int max) {
|
public static int checkBetween(int value, int min, int max) {
|
||||||
|
return checkBetween(value, min, max, TEMPLATE_VALUE_MUST_BE_BETWEEN_AND, min, max);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查值是否在指定范围内
|
||||||
|
*
|
||||||
|
* @param value 值
|
||||||
|
* @param min 最小值(包含)
|
||||||
|
* @param max 最大值(包含)
|
||||||
|
* @param errorSupplier 错误抛出异常附带的消息生产接口
|
||||||
|
* @throws X if value is out of bound
|
||||||
|
* @return 经过检查后的值
|
||||||
|
* @since 5.7.15
|
||||||
|
*/
|
||||||
|
public static <X extends Throwable> long checkBetween(long value, long min, long max, Supplier<? extends X> errorSupplier) throws X {
|
||||||
if (value < min || value > max) {
|
if (value < min || value > max) {
|
||||||
throw new IllegalArgumentException(StrUtil.format("Length must be between {} and {}.", min, max));
|
throw errorSupplier.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查值是否在指定范围内
|
||||||
|
*
|
||||||
|
* @param value 值
|
||||||
|
* @param min 最小值(包含)
|
||||||
|
* @param max 最大值(包含)
|
||||||
|
* @return 经过检查后的值
|
||||||
|
* @since 5.7.15
|
||||||
|
*/
|
||||||
|
public static long checkBetween(long value, long min, long max, String errorMsgTemplate, Object... params) {
|
||||||
|
return checkBetween(value, min, max, () -> new IllegalArgumentException(StrUtil.format(errorMsgTemplate, params)));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检查值是否在指定范围内
|
* 检查值是否在指定范围内
|
||||||
*
|
*
|
||||||
@ -860,12 +924,41 @@ public class Assert {
|
|||||||
* @since 4.1.10
|
* @since 4.1.10
|
||||||
*/
|
*/
|
||||||
public static long checkBetween(long value, long min, long max) {
|
public static long checkBetween(long value, long min, long max) {
|
||||||
|
return checkBetween(value, min, max, TEMPLATE_VALUE_MUST_BE_BETWEEN_AND, min, max);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查值是否在指定范围内
|
||||||
|
*
|
||||||
|
* @param value 值
|
||||||
|
* @param min 最小值(包含)
|
||||||
|
* @param max 最大值(包含)
|
||||||
|
* @param errorSupplier 错误抛出异常附带的消息生产接口
|
||||||
|
* @throws X if value is out of bound
|
||||||
|
* @return 经过检查后的值
|
||||||
|
* @since 5.7.15
|
||||||
|
*/
|
||||||
|
public static <X extends Throwable> double checkBetween(double value, double min, double max, Supplier<? extends X> errorSupplier) throws X {
|
||||||
if (value < min || value > max) {
|
if (value < min || value > max) {
|
||||||
throw new IllegalArgumentException(StrUtil.format("Length must be between {} and {}.", min, max));
|
throw errorSupplier.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查值是否在指定范围内
|
||||||
|
*
|
||||||
|
* @param value 值
|
||||||
|
* @param min 最小值(包含)
|
||||||
|
* @param max 最大值(包含)
|
||||||
|
* @return 经过检查后的值
|
||||||
|
* @since 5.7.15
|
||||||
|
*/
|
||||||
|
public static double checkBetween(double value, double min, double max, String errorMsgTemplate, Object... params) {
|
||||||
|
return checkBetween(value, min, max, () -> new IllegalArgumentException(StrUtil.format(errorMsgTemplate, params)));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检查值是否在指定范围内
|
* 检查值是否在指定范围内
|
||||||
*
|
*
|
||||||
@ -876,10 +969,7 @@ public class Assert {
|
|||||||
* @since 4.1.10
|
* @since 4.1.10
|
||||||
*/
|
*/
|
||||||
public static double checkBetween(double value, double min, double max) {
|
public static double checkBetween(double value, double min, double max) {
|
||||||
if (value < min || value > max) {
|
return checkBetween(value, min, max, TEMPLATE_VALUE_MUST_BE_BETWEEN_AND, min, max);
|
||||||
throw new IllegalArgumentException(StrUtil.format("Length must be between {} and {}.", min, max));
|
|
||||||
}
|
|
||||||
return value;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -899,7 +989,7 @@ public class Assert {
|
|||||||
double minDouble = min.doubleValue();
|
double minDouble = min.doubleValue();
|
||||||
double maxDouble = max.doubleValue();
|
double maxDouble = max.doubleValue();
|
||||||
if (valueDouble < minDouble || valueDouble > maxDouble) {
|
if (valueDouble < minDouble || valueDouble > maxDouble) {
|
||||||
throw new IllegalArgumentException(StrUtil.format("Length must be between {} and {}.", min, max));
|
throw new IllegalArgumentException(StrUtil.format(TEMPLATE_VALUE_MUST_BE_BETWEEN_AND, min, max));
|
||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user