У меня есть 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, что может сделать преобразование более элегантным?