AdPosition position = adPositionMapper.selectByPrimaryKey(advertDto.getPositionId()) .orElseThrow(() -> new RuntimeException("Ad position not found"));报错Cannot resolve method 'orElseThrow' in 'AdPosition'
时间: 2024-01-25 12:02:07 浏览: 120
这个错误是因为`AdPosition`对象没有实现`Optional`接口,所以不能使用`orElseThrow`方法。你需要使用`ifPresent`方法来判断`AdPosition`对象是否存在,如果存在就执行指定的操作,如果不存在就跳过。例如:
```
Optional<AdPosition> adPosition = adPositionMapper.selectByPrimaryKey(advertDto.getPositionId());
if (adPosition.isPresent()) {
AdPosition position = adPosition.get();
// 这里是存在AdPosition对象的代码逻辑
} else {
throw new RuntimeException("Ad position not found");
}
```
或者你也可以使用`orElseThrow`方法来抛出自定义的异常,但需要将`AdPosition`对象转换为`Optional`类型。例如:
```
AdPosition position = adPositionMapper.selectByPrimaryKey(advertDto.getPositionId())
.map(Optional::ofNullable)
.orElseThrow(() -> new RuntimeException("Ad position not found"));
```
这种方式可以让你在一行代码中完成对`AdPosition`对象的查找并抛出异常的操作。
阅读全文