Ho un Optional
che voglio "convertire" in un OptionalInt
, ma non sembra essere un modo semplice per farlo.Ottenere un OptionalInt da Opzionale
Qui è quello che voglio fare (esempio inventato):
public OptionalInt getInt() {
return Optional.ofNullable(someString).filter(s -> s.matches("\\d+")).mapToInt(Integer::parseInt);
}
ma non c'è nessun metodo per mapToInt()
Optional
.
Il meglio che ho potuto venire in mente è:
return Optional.ofNullable(someString)
.filter(s -> s.matches("\\d+"))
.map(s -> OptionalInt.of(Integer.parseInt(s)))
.orElse(OptionalInt.empty());
ma che sembra poco elegante.
Mi manca qualcosa del JDK che può rendere la conversione più elegante?
Questa è una buona idea. Inoltre, il mio cattivo re 'of' vs' ofNullable() ':. Ho semplificato l'esempio. Dovrebbe essere stato 'Optional.ofNullable()'. Ho aggiornato la Q e potato la tua risposta di conseguenza. – Bohemian