У меня есть Optional который я хочу "преобразовать" в OptionalInt, но, похоже, не существует простого способа сделать это.
Вот что я хочу сделать (надуманный пример):
public OptionalInt getInt() {
return Optional.ofNullable(someString).filter(s -> s.matches("\\d+")).mapToInt(Integer::parseInt);
}
Тем не менее, нет mapToInt() для Optional.
Лучшее, что я мог придумать, это:
return Optional.ofNullable(someString)
.filter(s -> s.matches("\\d+"))
.map(s -> OptionalInt.of(Integer.parseInt(s)))
.orElse(OptionalInt.empty());
но это кажется не элегантным.
Я что-то упускаю из JDK, что может сделать преобразование более элегантным?