Czy można przesyłać strumień w Javie 8? Powiedzmy, że mam listę obiektów, mogę zrobić coś takiego, aby odfiltrować wszystkie dodatkowe obiekty:
Stream.of(objects).filter(c -> c instanceof Client)
Po tym jednak, jeśli chcę coś zrobić z klientami, musiałbym obsadzić każdego z nich:
Stream.of(objects).filter(c -> c instanceof Client)
.map(c -> ((Client) c).getID()).forEach(System.out::println);
To wygląda trochę brzydko. Czy można rzucić cały strumień na inny typ? Jak rzucać Stream<Object>
do Stream<Client>
?
Proszę zignorować fakt, że robienie takich rzeczy prawdopodobnie oznaczałoby zły projekt. Robimy takie rzeczy na moich zajęciach z informatyki, więc szukałem nowych funkcji java 8 i byłem ciekawy, czy to jest możliwe.