登录Java 8可选



我有一些代码,其中我使用Java 8Optional,当我没有得到所需的结果时,我想在其中log一个错误。

如下面的示例所示,当我试图记录Error Message:时,我在一行上有commented

@PutMapping("/organs/{id}")
public Organ updateorgan(@PathVariable(value = "id") Long organId,
@Valid @RequestBody Organ organDetails) {
Organ organ = organRepository.findById(organId)
.orElseThrow(() -> 
// LOG.log(Level.SEVERE,"Organ with id "+organId + "not found");
new ResourceNotFoundException("organ", "id", organId)
);
organ.setName(organDetails.getName());
Organ updatedOrgan = organRepository.save(organ);
LOG.info("Updated organ details. Response :"+updatedOrgan);
return updatedOrgan;
}

p.S-我只想使用Java 8方法,而不是传统的方法。

提前感谢!

使其成为一个lambda,其正文由大括号和return语句包围,而不是表达式lambda:

Organ organ = organRepository.findById(organId)
.orElseThrow(() -> {
LOG.log(Level.SEVERE,"Organ with id "+organId + "not found");
return new ResourceNotFoundException("organ", "id", organId);
});

您必须使用return

Organ organ = organRepository.findById(organId)
.orElseThrow(() -> {
LOG.log(Level.SEVERE,"Organ with id "+organId + "not found");
return new ResourceNotFoundException("organ", "id", organId);
});

最新更新