java - 将 isPresent() 和方法调用更改为 ifPresent()

标签 java java-8 option-type

我该如何改变:

if (pAlarms[0].getMoIdentifier().isPresent()) {
    Optional<AlarmValue[]> alarmValues = getAlarmsFromMo(pAlarms[0].getMoIdentifier().get());
}

进入ifPresent()

最佳答案

即使您要求使用 ifPresent(),我认为在您的示例中使用 flatMap() 更有意义。有了它你应该能够做到这一点:

Optional<AlarmValue[]> alarmValues = pAlarms[0].getMoIdentifier().flatMap(this::getAlarmsFromMo)

关于java - 将 isPresent() 和方法调用更改为 ifPresent(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49550312/

相关文章:

java - RxJava 访问项目下游

Java 8 流 - 合并两个集合,使其在特定领域保持唯一

Java 8 将 Optional<Object> 转换为 long、int、String 或 Foo

Java 8 Optional 如何处理太多 orElses

ios - 为什么我收到警告 "Expression implicitly coerced from ' xx ?' to ' Any'”?

java - 从java编译c++文件

java - ApplicationEventMulticaster 未初始化 - 在通过上下文多播事件之前调用 'refresh'

java - Glass 上的 Google Play 服务 "Not Authentic"

java - maven-jar-plugin 中的 NPE

java - 使用 Java8 Stream 从 map 中查找最高值