Optional 至Optional

问题描述 投票:2回答:2

我必须将Option转换为Optional,并为此创建了代码,但我认为不使用private方法的时间可能会更短。

Optional<Long> optionalLong  ;
 Optional<Instant> optionalInstant;


assertThat(createdOrder.acceptedTime, is( OptionalLongToOptionalInstant(expectedOrder.acceptedTime())));


private Optional<Instant> OptionalLongToOptionalInstant(Optional<Long> optionalLong ) {
    if(optionalLong.isPresent()){
        return   Optional.of(Instant.ofEpochMilli(optionalLong.get()));
    }
    return Optional.empty();
}
java optional long-integer instant
2个回答
4
投票

您应使用Optional.map()方法:

如果存在值,则将提供的映射函数应用于它,如果结果为非null,则返回描述结果的Optional。否则,返回一个空的Optional。

Optional.map()

1
投票

您需要[Optional<Long> optionalLong = Optional.ofNullable(createdOrder.acceptedTime()); Optional<Instant> optionalInstant = optionalLong.map(Instant::ofEpochMilli); 方法

.map()

源代码,它会为您检查assertThat(createdOrder.acceptedTime, is(expectedOrder.acceptedTime().map(Instant::ofEpochMilli)));

isPresent()
© www.soinside.com 2019 - 2024. All rights reserved.