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

时间:2018-03-29 07:27:45

标签: java java-8 optional

我该如何改变:

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

进入ifPresent()

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:2)

这应该这样做。

pAlarms[0].getMoIdentifier().ifPresent(moId -> {
    Optional<AlarmValue[]> alarmValues = getAlarmsFromMo(moId);
});