优化代码,嵌套不能太深 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 19:45:04 浏览: 278
可以使用 Map 来替代 if-else 语句的嵌套,避免嵌套太深,优化代码结构。代码如下:
```
if (StringUtils.hasText(status)) {
String code = RedisKeyEnums.USERLOCKSTATE.getCode();
Map<String, List<Integer>> statusMap = new HashMap<>();
statusMap.put("正常", Collections.singletonList(NOT_LOCK));
statusMap.put("已锁定", Arrays.asList(ON_LOCK, LOCK_BY_PERSON, LOCK_BY_NOT_LOGIN));
List<Integer> lockStatusList = statusMap.getOrDefault(status, null);
if (lockStatusList != null) {
for (Integer lockStatus : lockStatusList) {
lockStatus.add(findCodeByInfo(code, lockStatus));
}
} else {
return Result.failure("参数错误");
}
}
```
这样做可以将 if-else 语句的嵌套减少,代码结构更加清晰,易于理解和维护。
相关问题
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语句块中的代码。
阅读全文