Sto cercando di trovare un modo pulito e il codice-efficiente per convertire Optional<Integer>
a Optional<Long>
. Sto lavorando in Java 7 con Guava.buon modo per convertire opzionale <Integer> per opzionale <Long>
Quindi, in un unico luogo nel codice che ho un intero opzionale creato
E in un'altra zona ne ho bisogno come un lungo opzionale. La cosa più bella che potrei venire in mente è questa:
Optional<Long> optionalLong = optionalInt.transform(new Function<Integer, Long>() {
@Override
public Long apply(Integer inputInt) {
if (inputInt != null)
return inputInt.longValue();
else
return null;
}
});
Ma questo è ingombrante, soprattutto se si considera quanto sia stato facile per lanciare il tipo di quando stavo usando tipi primitivi.
Qualche buona idea là fuori?
Usa Java 8 è solo 'opzionaleInt.map (i -> (long) i);' –
Nella tua funzione, non devi eseguire il test per 'null':' Optional.absent(). Transform (...) 'non fa nulla. –
@PeterLawrey o 'optionalInt.map (Integer :: longValue)' – blgt