2015-07-27 11 views
10

La classe IntStream ha map(), mapToObj(), mapToLong() e mapToDouble() metodi, ma tali metodi sembrano mancare dalla classe OptionalInt.Perché non c'è mapToInt() nella classe OptionalInt?

C'è una buona ragione per cui questi metodi siano mancanti?

+5

Forse si dovrebbe chiedere perché ' OptionalInt' non ha 'map' e' flatMap' come fa 'Optional'. – Eran

+0

forse duplicato di http://stackoverflow.com/questions/22725537/using-java-8s-optional-with-streamflatmap – Astrogat

+1

Sebbene non risponda al perché (e credo che avremo un membro di attesa dev team per avere la risposta), Java 9 introdurrà un metodo 'stream()' su Optionals. Quindi potresti fare 'Opzionale optObj = myOptInt.stream(). MapToObj (..). FindFirst();' come soluzione alternativa. –

risposta

1

Piuttosto ottusamente si può fare

OptionalInt oi = OptionalInt.of(1); 
oi.ifPresent(i -> IntStream.of(i).map(j -> j + 1).forEach(System.out::println)); 

Tuttavia non è chiaro il motivo per cui OptionalInt non hai gli stessi metodi IntStream anche se io notare Optional ha un sottoinsieme di Stream

Problemi correlati