2015-07-27 12 views
10

IntStream klasa ma map(), mapToObj(), mapToLong() i mapToDouble() metod, ale te metody wydają się być brakuje klasy OptionalInt.Dlaczego nie ma metody mapToInt() w klasie OptionalInt?

Czy istnieje dobry powód, aby te metody zostały pominięte?

+5

Może powinieneś zapytać dlaczego ' OpcjonalneInt' nie ma 'map' i' flatMap' jak 'Opcjonalnie' robi. – Eran

+0

może duplikat http://stackoverflow.com/questions/22725537/using-java-8s-optional-with-streamflatmap – Astrogat

+1

Chociaż nie odpowiada na pytanie dlaczego (i myślę, że będziemy musieli poczekać na członka zespół programistów, aby uzyskać odpowiedź), Java 9 wprowadzi metodę "stream()" w Optionals. Więc możesz zrobić "Opcjonalnie optObj = myOptInt.stream(). MapToObj (..). FindFirst();" jako obejście tego problemu. –

Odpowiedz

1

raczej tępo można zrobić

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

Jednak nie jest jasne, dlaczego OptionalInt nie mają takie same metody jak IntStream choć pamiętać Optional ma podzbiór Stream

Powiązane problemy