Baj*_*aik 10 java java-8 sonarqube
当我使用声纳lint扫描代码时,以下代码显示错误为"必须使用"返回值"orElseThrow"
itemList.stream()
.filter(item -> orderItemId.equals(item.getId()))
.findAny()
.orElseThrow(() -> new BadRequestException("12345","Item Not Found"));
Run Code Online (Sandbox Code Playgroud)
这仅用于验证目的,无需从此语句返回任何内容.需要验证项目是否存在.
仅供参考:Eclipse显示快速修复鱿鱼:S2201
任何人都知道如何解决这个错误?
Era*_*ran 14
我假设这是一个警告(不使用返回的值orElseThrow()
不应该是一个错误).
如果您希望消除该警告,请isPresent()
改用:
if (!itemList.stream().filter(i->orderItemId.equals(i.getId())).findAny().isPresent()) {
throw new BadRequestException("12345","Item Not Found");
}
Run Code Online (Sandbox Code Playgroud)
或者只是避免使用Optional
s,anyMatch()
而是使用:
if (!itemList.stream().anyMatch(i->orderItemId.equals(i.getId()))) {
throw new BadRequestException("12345","Item Not Found");
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3643 次 |
最近记录: |