params = JSONArray.parseArray(redisResultInfo);
String js = JSONObject.toJSONString(params, SerializerFeature.WriteClassName);
List<JSONObject> list = JSONObject.parseArray(js, JSONObject.class);
if (StringUtils.isEmpty(roleTypeCd)) {
return targetNameInfo;
}
String oldroleTypeCd = roleTypeCd.replace("|", ",");
String[] arr = oldroleTypeCd.split(",");// 用,分割
for (String targetName : arr) {
try {
JSONObject basicValue = list.stream().filter(sourceInfo -> targetName.equals(sourceInfo.get("basicCode").toString())).findAny().get();
targetNameInfo = basicValue.get("basicValue").toString();
targetNameInfo += "|";
} catch (Exception e) {
if ("No value present".equals(e.getMessage())) {
targetNameInfo = targetNameInfo;
}
}finally {
if (targetNameInfo.endsWith("|")) {
int i = targetNameInfo.lastIndexOf("|");
targetNameInfo = targetNameInfo.substring(0, i);
}
return targetNameInfo;
}
}
if (targetNameInfo.endsWith("|")) {
int i = targetNameInfo.lastIndexOf("|");
targetNameInfo = targetNameInfo.substring(0, i);
}
代码优化,以前是双层for循环,但是debug的时候看着空循环多次,特此优化。用lamda表达式存在一个问题,如果获取的参数在list中不存在,会抛异常,所以特此捕获了异常来进行修复