优化下面代码结构 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-03-10 22:45:02 浏览: 92
可以将多个重复的 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方法。
StringUtils.hasText
StringUtils.hasText()是Spring框架中的一个工具类方法,用于判断字符串是否有文本内容,即是否不为空格、制表符、换行符等空白字符,并且长度大于0。
具体来说,StringUtils.hasText()会先使用StringUtils.hasLength()方法判断字符串是否有内容(包括空格、制表符、换行符等空白字符),如果有内容,则使用StringUtils.trimWhitespace()方法去掉字符串开头和结尾的空白字符,然后判断剩余的字符是否为空。
示例代码:
```
if(StringUtils.hasText(str)) {
// 字符串不为空
} else {
// 字符串为空
}
```
以上代码将会判断字符串str是否有文本内容,如果有,则执行if语句块中的代码,否则执行else语句块中的代码。