示例一:泛型对象参数
/**
* 新增时维护信息
*
* @param obj 对象
* @param clazz class
* @param <T> 泛型
* @return 返回对象
*/
public static <T> T insertUser(T obj, Class<T> clazz) {
CurrentUser currentUser = OauthUserCheckUtil.checkLoginUser();
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(obj);
jsonObject.put("creatorId", currentUser.getId());
jsonObject.put("creatorName", currentUser.getName());
jsonObject.put("createdTime", new Date());
jsonObject.put("deletedFlag", ScEffectiveOrFailure.EFFECTIVE_OR_FAILURE_1.getCode());
return JSON.toJavaObject(jsonObject, clazz);
}
示例二:泛型对象集合参数
/**
* 属性非空校验
*
* @param list 数据集合
*/
public <T> void checkObjFieldIsNull(List<T> list, Object ob) {
HashMap<String, String> maps = new HashMap<>();
Class<? extends T> clz = (Class<? extends T>) ob.getClass();
List<Field> fields = Arrays.asList(clz.getDeclaredFields());
fields.parallelStream().forEach(vo -> {
if (vo.getAnnotation(ApiModelProperty.class) != null) {
maps.put(vo.getName(), vo.getAnnotation(ApiModelProperty.class).value());
}
});
list.forEach(vo -> {
JSONObject obj = (JSONObject) JSONObject.toJSON(vo);
maps.keySet().forEach(vv -> {
if (!"taskState,taskProgress".contains(vv) && StringUtils.isBlank(obj.getString(vv))) {
throw new ServiceException(maps.get(vv) + ":值不能为空");
}
//校验形象进度
if (StringUtils.equals("visualSchedule", vv)) {
try {
new BigDecimal(obj.getString(vv));
} catch (Exception e) {
throw new ServiceException("形象进度值非法:" + obj.getString(vv));
}
}
//校验牵头专业
if (StringUtils.equals("leadingMajor", vv)) {
if (!departmentList.contains(obj.getString(vv))) {
throw new ServiceException("牵头专业非法:" + obj.getString(vv));
}
}
//日期校验
if (StringUtils.equals("plannedCompletionTime", vv)) {
boolean legalDate = DateUtils.isLegalDate(obj.getString(vv).length(), obj.getString(vv), "yyyy-MM-dd");
if (!legalDate) {
throw new ServiceException("预计完成时间格式非法: " + obj.getString(vv) + "_日期格式参考:2008-08-08");
}
}
});
});
}