- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个返回OptionalDouble的服务,如果它为null,我会从另一个服务返回一个值,但我不知道在性能或最佳实践方面,orElseGet或orElse是否更好。
选项1)
fixerService.getRate(addWalletAmount.getMenuSymbol())
.orElseGet(() -> menuService
.findBySymbol(addWalletAmount
.getMenuSymbol())
.getPrice()
.doubleValue());
选项2)
fixerService.getRate(addWalletAmount.getMenuSymbol())
.orElse(menuService
.findBySymbol(addWalletAmount
.getMenuSymbol())
.getPrice()
.doubleValue());
最佳答案
当然orElseGet()
更好。即使 OptionalDouble
不为空,orElse()
也会执行您的服务,这是浪费的(因为 menuService.findBySymbol(addWalletAmount.getMenuSymbol()).getPrice( ).doubleValue()
是传递给 orElse()
方法的参数,必须在执行 orElse()
之前对其求值。
orElseGet()
仅当 OptionalDouble
为空时才会执行您的服务。
关于java - Java8 中使用 orElseGet 与 orElse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53248396/
这个问题在这里已经有了答案: Get value from one Optional or another (5 个答案) Optional orElse Optional in Java (6 个
我不确定如何准确地提出这个问题,所以请耐心等待... 1) 除了添加 null 之外,是否有更好(又名更“正确”)的方法来实例化可选元素的 Stream然后过滤掉 null 的? Stream.of(
我想使用 Optional 来处理空值,我想不出什么是最好的方法的“棘手”部分是我想在值为空时进行日志记录。我可以通过以下代码实现这一点 - 但感觉很尴尬。 (更新:我已经发布了我自己的答案,来自 J
你好,我在这里做错了什么 我想获取基础 Id ,如果它不存在,则获取保险类型..代码片段粘贴在下面..但我在 orElse 部分收到错误,我什至尝试过 orElseGet() ...它说“Lambda
这个问题已经有答案了: Difference between `Optional.orElse()` and `Optional.orElseGet()` (9 个回答) When I need to
我准备了一个小例子来复制我的项目中发生的事情。我知道如何解决它,但我很好奇为什么它甚至无法编译。当我在方法 public TestElement test() 中使用通用通配符时,问题出在最后一次返回
我有一个可选的类列表,即:Optional> opListEntity 我需要映射所有 MyEntity至MyEntityDto当可选存在时。如果 Optional 为空,我将返回一个空的 Array
我需要对此有一个明确的解释,即使我读过这个 link关于差异但没有明确说明。那么任何人都可以用代码简单地向我解释一下吗? 最佳答案 我想我开始理解你的问题了。 Optional 的执行顺序可能与我们在
我有一个用于形成 JSON 响应的类 TeamResponse。它有一些参数,其中一个是可选的: public TeamResponse(Team team, List teamSkillTempla
这个问题在这里已经有了答案: Difference between `Optional.orElse()` and `Optional.orElseGet()` (9 个回答) 关闭 3 年前。 我
我在使用 Groovy 2.4.16 和 Java 8.0.212-zulu 以及 java.util.Optional 时遇到了奇怪的行为。 所以,这是代码: def optRegion = new
Java9 给 Optional 添加了 .or 方法。现有的 .orElseGet 有何不同? checkUserInMemory(userId).or(() -> checkUserInDB(us
假设我不知道一个 Optional 是否为空,或者两者是否都存在。在后一种情况下,我总是希望 a 而不是 b: final Optional a = Optional.of("1"); final O
这个问题在这里已经有了答案: Difference between `Optional.orElse()` and `Optional.orElseGet()` (9 个回答) 关闭 4 年前。 这
我是一名优秀的程序员,十分优秀!