如何在可选的orElse中返回值?

时间:2020-03-26 09:52:31

标签: java java-8 functional-programming java-stream optional

我有可选对象

./../../../public/img/image.png

我有两种情况。如果存在对象,则第一个返回ResponseEntity.ok,第二个返回Return ResponseEntity.noContent()。build()。 我有功能

Optional<Instrument> instrument = instrumentService.findOne(id);

返回点后我需要写些什么?

1 个答案:

答案 0 :(得分:1)

您可以使用orElse

return instrument
    .map(instrument1 -> instrument1 -> { 
        instrument1.setValue(value); 
        return ResponseEntity.ok(instrumentMapper.toDto(instrumentRepository.save(instrument1))); })
    .orElse(ResponseEntity.noContent().build());

并进一步构建默认值:

return instrument
    .map(instrument1 -> instrument1 -> { 
        instrument1.setValue(value); 
        return ResponseEntity.ok(instrumentMapper.toDto(instrumentRepository.save(instrument1))); })
    .orElseGet(() -> {
        Intrument inst = new Intrument(); 
        inst.setTitle("Not found"); 
        return inst; 
    });
相关问题