Czy strumienie Java 8 są bezpiecznymi typami powrotu dla metod publicznych, ponieważ nie można zmutować obiektu bazowego, z którego pochodzi strumień?Czy Java 8 jest bezpiecznym typem zwrotnym?
Na przykład, jeśli mam List
i return list.stream();
, czy wartość zwracaną w jakikolwiek sposób można wykorzystać do mutowania oryginalnej listy?
Sądząc z API, nie sądzę, że jest to możliwe, ale chciałbym potwierdzić.
zapoznanie się i dostaniesz dobrą pojęcia dlaczego strumienie nie będą modyfikować źródło (zbiór w przykładzie): http://www.oracle.com/technetwork/articles/java/ma14-java-se-8-streams-2177646.html – alfasin
Uzyskiwanie strumienia z listy nie powinno modyfikować samej struktury danych, ale może modyfikować jej treść, jeśli zawiera zmienne obiekty. Ale ta zasada dotyczy ogólnie struktur danych. –