/**
* 校验对象中的属性。如果属性为null,抛异常。如果属性为字符串(空串或空格),抛异常。
* @author mex
* @date 2019年4月18日
* @param e 对象
* @param fieldNames 属性名称数组
* @return void
* @throws Exception
*/
public static <E> 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 + "不能为空");
}
}
}
}
原文:https://www.cnblogs.com/mexding/p/13233588.html