public boolean addFeedback(String context) { IdeaFeedbackEntity feedback = new IdeaFeedbackEntity(); String userInfoStr = redisTemplate.opsForValue().get("userInfo"); UserInfo userInfo = null; try { userInfo = new ObjectMapper().readValue(userInfoStr, UserInfo.class); } catch (Exception e) { LOGGER.error("意见反馈用户信息获取失败: {}",e.getMessage()); } feedback.setContext(context); feedback.setUserId(userInfo.getUserId(); feedback.setUserName(userInfo.getUserName()); feedback.setCreateName(userInfo.getUserName()); feedback.setCreateTime(new Date()); return ideaFeedbackMapper.insert(feedback) > 0; }优化一下代码,做一下非空校验
时间: 2024-04-13 13:30:45 浏览: 150
下面是对代码进行优化的建议,并添加了非空校验:
```java
public boolean addFeedback(String context) {
IdeaFeedbackEntity feedback = new IdeaFeedbackEntity();
String userInfoStr = redisTemplate.opsForValue().get("userInfo");
if (StringUtils.isBlank(userInfoStr)) {
LOGGER.error("意见反馈用户信息获取失败");
return false;
}
try {
UserInfo userInfo = new ObjectMapper().readValue(userInfoStr, UserInfo.class);
feedback.setUserId(userInfo.getUserId());
feedback.setUserName(userInfo.getUserName());
feedback.setCreateName(userInfo.getUserName());
feedback.setCreateTime(new Date());
feedback.setContext(context);
return ideaFeedbackMapper.insert(feedback) > 0;
} catch (Exception e) {
LOGGER.error("意见反馈用户信息获取失败: {}", e.getMessage());
return false;
}
}
```
优化后的代码主要做了以下改进:
- 对 `userInfoStr` 进行非空校验,如果为空则直接返回 false。
- 将异常捕获放在合适的位置,避免未捕获的异常导致程序终止。
- 设置 `feedback` 对象的属性值。
- 返回插入操作的结果。
这些改进可以提高代码的可读性和健壮性,并且保持了原有代码的逻辑和功能。同时,通过非空校验可以避免空指针异常,并在发生异常时返回适当的错误信息。
阅读全文