可选,在 orElse 之前进行额外处理
Optional with additional processing before orElse
在我的服务中,我想 return MAX+1 OR return 10000000 相反,我有 fooRepository.findMax()
其中 return 和 Optional<Long>
这是MAX.
如何像下面这样在一行中完成(我只错过了增量部分)
fooRepository.findMax().orElse(10000000L)
PS:我知道我可以在多行中使用 ifPresent
...
这似乎是一个奇怪的要求,但为什么不直接...
fooRepository.findMax().orElse(9999999L) + 1
?
您可以使用 map 方法对 Optional 的内容做一些事情。如果Optional为空,则不执行。
像这样:
fooRepository.findMax()
.map(max -> max + 1)
.orElse(10000000L);
这就是 map
的用途:
fooRepository.findMax().map(m -> m + 1).orElse(10000000L)
在我的服务中,我想 return MAX+1 OR return 10000000 相反,我有 fooRepository.findMax()
其中 return 和 Optional<Long>
这是MAX.
如何像下面这样在一行中完成(我只错过了增量部分)
fooRepository.findMax().orElse(10000000L)
PS:我知道我可以在多行中使用 ifPresent
...
这似乎是一个奇怪的要求,但为什么不直接...
fooRepository.findMax().orElse(9999999L) + 1
?
您可以使用 map 方法对 Optional 的内容做一些事情。如果Optional为空,则不执行。
像这样:
fooRepository.findMax()
.map(max -> max + 1)
.orElse(10000000L);
这就是 map
的用途:
fooRepository.findMax().map(m -> m + 1).orElse(10000000L)