我有一些代码,其中我使用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);
});