boolean flag = false; // if(StringUtils.isNotNull(goodsInfoDTO.getBuyerProtection())){ // for (int i = 0; i < enumData.length; i++) { if (goodsInfoDTO.getBuyerProtection().equals(enumData[i])) {flag = true; break; } } // if(!flag){throw new RuntimeException("当前保障设置有误!");} // }优化代码
时间: 2024-03-06 10:49:32 浏览: 72
好的,您想让我对这段代码进行优化是吗?我看到这段代码中存在一些问题,可能可以进行如下的优化:
1. 可以使用 `StringUtils.isNotEmpty` 代替 `StringUtils.isNotNull`,因为 `StringUtils.isNotEmpty` 不仅判断字符串是否不为 null,而且还判断字符串是否不为空。
2. 可以使用 `Arrays.asList(enumData).contains(goodsInfoDTO.getBuyerProtection())` 代替 for 循环,因为 `Arrays.asList()` 方法可以将数组转换为 List,然后使用 `List.contains()` 方法判断是否包含指定元素。
3. 可以使用 `Objects.requireNonNull` 代替 `throw new RuntimeException`,因为 `Objects.requireNonNull` 可以更加清晰地表达异常信息。
经过上述的优化,可以将代码简化为如下形式:
```
if (StringUtils.isNotEmpty(goodsInfoDTO.getBuyerProtection())) {
if (!Arrays.asList(enumData).contains(goodsInfoDTO.getBuyerProtection())) {
throw new IllegalArgumentException("当前保障设置有误!");
}
}
```
这样的代码更加简洁、易读,也更加符合 Java 的最佳实践。
阅读全文