首先贴代码:
List<EnumDo> enumDos = null;
List<String> enumFieldKeys = filterEnumField(keyValue, fieldList);
if (enumFieldKeys != null && !enumFieldKeys.isEmpty()) {
// 读取缓存
List<EnumDto> enumDtos = dictionaryCacheInfoDao.getEnumByAppIdAndEnumKey(appInfoDto.getId(),
enumFieldKeys);
if (enumDtos != null && enumDtos.size() > 0) {
for (int i = 0; i < enumDtos.size(); i++) {
EnumDo enumDo = new EnumDo();
BeanUtils.copyProperties(enumDtos.get(i), enumDo);
enumDos.add(enumDo);
}
}
if (enumDos == null || enumDos.size() < 1) {
QueryEnumValueDo queryEnumValueDo = new QueryEnumValueDo();
queryEnumValueDo.setAppId(appInfoDto.getId());
queryEnumValueDo.setEnumKeys(enumFieldKeys);
enumDos = enumDoMapperExt.findEnumByEnumValue(queryEnumValueDo);
}
}
// 变量没有初始化
List<EnumDo> enumDos = new ArrayList<EnumDo>();
List<String> enumFieldKeys = filterEnumField(keyValue, fieldList);
if (enumFieldKeys != null && !enumFieldKeys.isEmpty()) {
// 读取缓存
List<EnumDto> enumDtos = dictionaryCacheInfoDao.getEnumByAppIdAndEnumKey(appInfoDto.getId(),
enumFieldKeys);
if (CollectionUtils.isNotEmpty(enumDtos)) {
for (EnumDo e : enumDos) {
EnumDo enumDo = new EnumDo();
BeanUtils.copyProperties(e, enumDo);
enumDos.add(enumDo);
}
}
if (CollectionUtils.isEmpty(enumDos)) {
QueryEnumValueDo queryEnumValueDo = new QueryEnumValueDo();
queryEnumValueDo.setAppId(appInfoDto.getId());
queryEnumValueDo.setEnumKeys(enumFieldKeys);
enumDos = enumDoMapperExt.findEnumByEnumValue(queryEnumValueDo);
}
}
坑也踩了,错犯了。
主要是:注意问题,学习总结。
总结下,对集合类的操作,
1、初始化
List<EnumDo> enumDos = new ArrayList<EnumDo>();
2、集合空判断
CollectionUtils.isNotEmpty
CollectionUtils.isEmpty
3、对循环处理
for (EnumDo e : enumDos) { // 效率高
...
}
4、谢谢岚弈
感恩的心奥,晚上等岚弈一起走哦。