登录Java 8可选

I'm*_*tik 3 java optional java-8

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

如下面的示例所示,commented我在尝试登录时出现错误Error Message

    @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;
    }
Run Code Online (Sandbox Code Playgroud)

PS-我只想使用该Java 8方法,而不是常规方法。

提前致谢!

Jes*_*per 7

使它成为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);
                });
Run Code Online (Sandbox Code Playgroud)