В моем коде у меня есть OptionalLong. Но для одной из моих библиотек требуется параметр Optional<Long>. Как я могу его преобразовать?
Мне снилось что-то вроде этого:
OptionalLong secondScreenHeight = OptionalLong.of(32l);
api.setHeight(secondScreenHeight.maptoUsualOptional()); // .maptoUsualOptional does not exist
Вы можете сделать это:
final OptionalLong optionalLong = OptionalLong.of(5);
final Optional<Long> optional = Optional.of(optionalLong)
.filter(OptionalLong::isPresent)
.map(OptionalLong::getAsLong);
Я не знаю более простых решений, но это сделает то, что вам нужно.
OptionalLong secondScreenHeight = OptionalLong.of(32l);
Optional<Long> optional = secondScreenHeight.isPresent()
? Optional.of(secondSceenHeight.getAsLong())
: Optional.empty();
api.setHeight(optional);
Это должно сработать.
Optional<Long> returnValue = Optional.empty();
if(secondScreenHeight.isPresent()) {
returnValue = Optional.of(secondScreenHeight.getAsLong());
}