orderI-6ren">
gpt4 book ai didi

java - 必须使用 "orElseThrow"的返回值

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:54:02 32 4
gpt4 key购买 nike

当我使用 sonar lint 扫描代码时,以下代码将错误显示为“必须使用“orElseThrow”的返回值”

itemList.stream()
.filter(item -> orderItemId.equals(item.getId()))
.findAny()
.orElseThrow(() -> new BadRequestException("12345","Item Not Found"));

这只是为了验证目的,不需要从此语句返回任何内容。需要验证该项目是否存在。

仅供引用:Eclipse 将快速修复显示为 squid:S2201

有人知道如何解决这个错误吗?

最佳答案

我假设这是一个警告(不使用 orElseThrow() 返回的值不应该是错误)。

如果您希望消除该警告,请改用 isPresent():

if (!itemList.stream().filter(i->orderItemId.equals(i.getId())).findAny().isPresent()) {
throw new BadRequestException("12345","Item Not Found");
}

或者只是避免使用Optional,而是使用anyMatch():

if (!itemList.stream().anyMatch(i->orderItemId.equals(i.getId()))) {
throw new BadRequestException("12345","Item Not Found");
}

关于java - 必须使用 "orElseThrow"的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49532409/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com