if(StringUtils.hasText(status)){ if (status.equals("正常")){ lockStatus.add(findCodeByInfo(RedisKeyEnums.USERLOCKSTATE.getCode(), NOT_LOCK)); }else if(status.equals("已锁定")) { lockStatus.add( findCodeByInfo(RedisKeyEnums.USERLOCKSTATE.getCode(), ON_LOCK) ); lockStatus.add( findCodeByInfo(RedisKeyEnums.USERLOCKSTATE.getCode(), LOCK_BY_PERSON) ); lockStatus.add( findCodeByInfo(RedisKeyEnums.USERLOCKSTATE.getCode(), LOCK_BY_NOT_LOGIN) ); }else { return Result.failure("参数错误"); } }
时间: 2024-04-26 16:20:56 浏览: 101
这是一段 Java 代码,大致意思是:如果传入的 status 参数不为空,那么判断它等于 "正常" 还是 "已锁定",如果是 "正常",则往 lockStatus 集合里添加一个 RedisKeyEnums.USERLOCKSTATE.getCode() 对应的值为 NOT_LOCK 的值;如果是 "已锁定",则往 lockStatus 集合里添加三个 RedisKeyEnums.USERLOCKSTATE.getCode() 对应的值为 ON_LOCK、LOCK_BY_PERSON、LOCK_BY_NOT_LOGIN 的值;如果 status 参数既不是 "正常" 也不是 "已锁定",则返回一个失败的结果,提示参数错误。
相关问题
优化下面代码结构 if(StringUtils.hasText(status)){ if (status.equals("正常")){ lockStatus.add(findCodeByInfo(RedisKeyEnums.USERLOCKSTATE.getCode(), NOT_LOCK)); }else if(status.equals("已锁定")) { lockStatus.add( findCodeByInfo(RedisKeyEnums.USERLOCKSTATE.getCode(), ON_LOCK) ); lockStatus.add( findCodeByInfo(RedisKeyEnums.USERLOCKSTATE.getCode(), LOCK_BY_PERSON) ); lockStatus.add( findCodeByInfo(RedisKeyEnums.USERLOCKSTATE.getCode(), LOCK_BY_NOT_LOGIN) ); }else { return Result.failure("参数错误"); } }
可以将多个重复的 RedisKeyEnums.USERLOCKSTATE.getCode() 提取出来,避免多次重复调用,可以使用 switch 语句代替 if-else 语句,代码如下:
```
if (StringUtils.hasText(status)) {
String code = RedisKeyEnums.USERLOCKSTATE.getCode();
switch (status) {
case "正常":
lockStatus.add(findCodeByInfo(code, NOT_LOCK));
break;
case "已锁定":
lockStatus.add(findCodeByInfo(code, ON_LOCK));
lockStatus.add(findCodeByInfo(code, LOCK_BY_PERSON));
lockStatus.add(findCodeByInfo(code, LOCK_BY_NOT_LOGIN));
break;
default:
return Result.failure("参数错误");
}
}
```
这样做可以使代码更加简洁易懂,也可以避免多次重复调用 RedisKeyEnums.USERLOCKSTATE.getCode()。
StringUtils.hasText和StringUtils.isBlank区别
StringUtils.hasText和StringUtils.isBlank都是org.springframework.util.StringUtils类中提供的方法,用于判断字符串是否为空或只包含空格。
但是,它们的判断条件略有不同:
1. StringUtils.hasText(CharSequence str)方法会先去掉字符串两端的空格,然后判断字符串是否为空,如果不为空,则返回true,否则返回false。
2. StringUtils.isBlank(CharSequence str)方法会直接判断字符串是否为空或者只包含空格,如果是,则返回true,否则返回false。
因此,当需要判断字符串是否为空或者只包含空格时,可以使用StringUtils.isBlank方法;当需要判断字符串是否为空或者包含非空格字符时,可以使用StringUtils.hasText方法。