import org.apache.commons.lang3.StringUtils;
/**
* 配值较验器
*
* 提供对值进行较验的api,并根据较验结果取值且返回
*
*/
public class ValueValidator {
/**
* 对目标值进行校验,并根据校验结果取值
* <br>使用示例(校验目标值是否大于0, 如果小于 0 则取值为 1)
* <br>ValueValidator.checkAndGet(-1, 1, Validator.INTEGER_GT_ZERO_VALIDATOR)</br>
* @param value 校验值
* @param defaultValue 校验失败默认值
* @param v 校验器
* @return 经Validator校验后的返回值,校验成功返回 value, 校验失败返回 defaultValue
*/
public static <T> T checkAndGet(T value, T defaultValue, Validator<T> v) {
if (v.validate(value)) {
return value;
}
return defaultValue;
}
/**
* 对Properties值进行规则匹配的验证器
*/
public interface Validator<T> {
/**
* 校验器: 数值配置不为null, 且大于0较验
*/
Validator<Integer> INTEGER_GT_ZERO_VALIDATOR = new Validator<Integer>() {
@Override
public boolean validate(Integer value) {
return (value != null && value > 0);
}
};
/**
* 校验器: 字符串不为空串较验
*/
Validator<String> STRING_EMPTY_VALUE_VALIDATOR = new Validator<String>() {
@Override
public boolean validate(String value) {
return StringUtils.isNotEmpty(value);
}
};
/**
* 校验器: BOOL字符串较验
*/
Validator<String> STRICT_BOOL_VALUE_VALIDATOR = new Validator<String>() {
@Override
public boolean validate(String value) {
return "true".equalsIgnoreCase(value) || "false".equalsIgnoreCase(value);
}
};
/**
* 值规则匹配方法实现
*/
boolean validate(T value);
}
}
TassertThat(ValueValidator.checkAndGet(-1, 1, Validator.INTEGER_GT_ZERO_VALIDATOR)).isEqualTo(1);
泛型
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...