如何将 OptionalLong 映射到 Optionallong<Long>?

2022-09-03 04:55:57

我有一个 .但是我的一个库需要一个作为参数。OptionalLongOptional<Long>

如何将我的转换为 ?OptionalLongOptional<Long>

我梦见这样的事情:

OptionalLong secondScreenHeight = OptionalLong.of(32l); // or: OptionalLong.empty()
api.setHeight(secondScreenHeight.mapToRegularOptional()); // .mapToUsualOptional does not exist

答案 1

你可以这样做:

final OptionalLong optionalLong = OptionalLong.of(5);

final Optional<Long> optional = Optional.of(optionalLong)
            .filter(OptionalLong::isPresent)
            .map(OptionalLong::getAsLong);

答案 2

我不知道更简单的解决方案,但这将做你需要的。

OptionalLong secondScreenHeight = OptionalLong.of(32l);
Optional<Long> optional = secondScreenHeight.isPresent() 
    ? Optional.of(secondSceenHeight.getAsLong()) 
    : Optional.empty();
api.setHeight(optional);

推荐