/**
* 判断实体类要求非空字段是否符合要求
* @param paramObj obj {id, name ,Tel , sex, email}
* @param allowedNullParams id, name ,Tel , sex
* @return {email : email不予许为空}
*/
public static Map<String, String> checkNotNullParams(Object paramObj, String allowedNullParams){
//获取所有允许为空的字段
Set<String> nullParams = paramsStrToSet(allowedNullParams);
//获取实体类的所有字段
Field[] fields = paramObj.getClass().getDeclaredFields();
Map<String, String> msg = new HashMap<>(8);
Arrays.stream(fields).forEach(obj -> {
obj.setAccessible(true);
//如果参数不在允许为空的范围内,进行非空判断
if (!nullParams.contains(obj.getName().toLowerCase())){
try {
if (obj.get(paramObj) == null){
msg.put(obj.getName(), obj.getName() + "不予许为空值");
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
});
return msg;
}
/**
* 将参数字符串转化为set 全部改为小写
* @param paramNameStr id, createdTime,SFID
* @return set [id, createdtime, sfid]
*/
public static Set<String> paramsStrToSet(String paramNameStr){
Set<String> paramSet = new HashSet<>(8);
String[] params = paramNameStr.split(",");
Arrays.stream(params).forEach(obj -> paramSet.add(obj.trim().toLowerCase()));
return paramSet;
}
通过反射判断类的非空字段是否满足要求
最新推荐文章于 2024-07-28 02:33:37 发布