属性校验工具类
/**
* 校验对象中的属性。如果属性为null,抛异常。如果属性为字符串(空串或空格),抛异常。
* @author mex
* @date 2019年4月18日
* @param e 对象
* @param fieldNames 属性名称数组
* @return void
* @throws Exception
*/
public static void validateAttr(E e, String[] fieldNames) throws Exception {
if (null == e) {
throw new Exception("请求对象为空");
}
if (null == fieldNames) {
return;
}
for (int i = 0; i < fieldNames.length; i++) {
String fieldName = fieldNames[i];
Field field = e.getClass().getDeclaredField(fieldName);
String typeName = field.getGenericType().getTypeName();
field.setAccessible(Boolean.TRUE);
Object fieldValue = field.get(e);
// 判断该属性为null的情况
if (null == fieldValue) {
throw new Exception("请求字段:" + fieldName + "不能为空");
}
// 如果该属性为字符串,判断其为空或空格的情况
if ("java.lang.String".equals(typeName)) {
if (StringUtils.isBlank((String)fieldValue)) {
throw new Exception("请求字段:" + fieldName + "不能为空");
}
}
}
}
2.小数校验工具类
/**
* 校验小数格式(正数,小数位最大为2)
* @param bStr 字符串形式的小数
* @return 布尔值
*/
public static Boolean validateBigDecimalString(String bStr) {
Pattern pattern= Pattern.compile("^(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){0,2})?$");
Matcher match=pattern.matcher(bStr);
return match.matches();
}