我必须将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();
}
最佳答案
您应该使用Optional.map()
方法:
如果存在值,则将提供的映射函数应用于该值,如果结果为非null,则返回描述结果的Optional。否则,返回一个空的Optional。
Optional<Long> optionalLong = Optional.ofNullable(createdOrder.acceptedTime());
Optional<Instant> optionalInstant = optionalLong.map(Instant::ofEpochMilli);