Czy istnieje konwencja nazewnictwa dla metod zwracających strumień? Jedyna wzmianka, którą znalazłem, to answer on S.O (ostatni akapit), ale nie widzę, na czym ona jest oparta.Nazewnictwo metod java, które zwracają strumienie
Odpowiedz
Od kiedy napisałem ten akapit, czuję się zmuszony do udzielenia odpowiedzi. :-)
Załóżmy, że masz klasę, która reprezentuje agregację rzeczy jednego typu, i chcesz zwrócić jej Stream
do osoby dzwoniącej.
Jeśli jest całkowicie jednoznaczny co do tego, co powracasz, możesz równie dobrze wywołać metodę stream()
. Istnieje wiele metod w JDK o nazwie stream()
, które zwracają strumień oczywistego typu.
Czasami to, co wracasz, to różne przedstawienia tej samej rzeczy, różnego rodzaju rzeczy i tak dalej. W takim przypadku wydaje się, że istnieje konwencja wyboru rzeczownika w liczbie mnogiej, która reprezentuje typ rzeczy zwracanych w strumieniu.
Aby to zobaczyć, zajrzyj do Javadoc i kliknij link Użyj na górnym pasku nawigacyjnym. Spowoduje to przejście do strony z odsyłaczami. Spójrz na wszystkich metod, które mają wartości zwracanych typu jesteś zainteresowany.
Na przykład, patrz Zastosowanie stron dla Stream
, IntStream
, LongStream
i DoubleStream
. Istnieje wiele metod o nazwie stream()
, które zwracają strumienie. Ale są też:
java.io.BufferedReader.lines()
java.lang.CharSequence.chars()
java.lang.CharSequence.codePoints()
java.nio.CharBuffer.chars()
java.nio.file.File.lines()
java.util.Random.ints()
java.util.Random.longs()
java.util.Random.doubles()
java.util.SplittableRandom.ints()
java.util.SplittableRandom.longs()
java.util.SplittableRandom.doubles()
java.util.concurrent.ThreadLocalRandom.ints()
java.util.concurrent.ThreadLocalRandom.longs()
java.util.concurrent.ThreadLocalRandom.doubles()
Oczywiście, istnieje wiele metod, które nie są zgodne z tym. Klasa narzędzia plików NIO ma Files.find()
, Files.list()
i Files.walk()
. Strumień wyników z podziału ciągu jest zwracany przez java.util.regex.Pattern.splitAsStream
. Nie sądzę, żeby ktokolwiek polubił przyrostek AsStream
, ale znowu nikt nie mógł wymyślić nic lepszego. Z drugiej strony proponowane ulepszenie JDK 9, aby uzyskać strumień wyników dopasowań do wyrażenia regularnego, zostanie nazwane Matcher.results()
.
Oświecenie jak zawsze. Dzięki. – Vitaliy
- 1. Nazewnictwo BDD dla kilku metod
- 2. Strumienie Java 8, lambdas
- 3. Java - Czy są jakieś Stream Collectors, które zwracają ImmutableMap?
- 4. Strumienie Java 8 "ifPresent"
- 5. Strumienie Java - odchylenie standardowe
- 6. Dlaczego nowe strumienie Java 8 zwracają obiekt Array w wywołaniach toArray?
- 7. Strumienie Java 8 - limit czasu?
- 8. Java 8 strumienie - stackoverflow wyjątek
- 9. .Net WebAPI OData Działania, które zwracają Queryable
- 10. Metody, które zwracają znaczące wartości zwracane
- 11. Wątki, które zwracają dane w .NET
- 12. Nie można przypisać metod, które zwracają typy wartości do Func <dynamic>
- 13. Usuwanie powielania kodu z metod const i non const, które zwracają iteratory
- 14. metoda Objective C nazewnictwo
- 15. nazewnictwo konwencji serialVersionUID
- 16. Jak dodać dwa strumienie w Java 8?
- 17. Równoległość i Flatmap w Java 8 Strumienie
- 18. Java 8 Streams: Collapse/abstrakcyjne strumienie części
- 19. Strumienie Java 8 - łączenie listy map
- 20. Strumienie Java: grupuj listę w mapę map
- 21. Strumienie Java: distinct() na wstępnie posortowanym strumieniu?
- 22. Strumienie Java 8 do manipulowania ciągami znaków
- 23. UITextField - zawieszanie się na delegatach, które zwracają BOOL
- 24. niestandardowe nazewnictwo zadania nazewnictwa
- 25. Czy AutoFixture ma mechanizm sprawdzania, czy metody, które zwracają jakąkolwiek listę, nigdy nie zwracają wartości null?
- 26. GlobalAssemblyInfo.cs i silne nazewnictwo
- 27. Zrozumienie ogólnych metod java
- 28. Strumienie UTF-8, które są wymieszane przez Restlet na GAE
- 29. std :: thread - nazewnictwo twojego wątku
- 30. Angularjs przetestować proste fabryki, które zwracają dane statyczne
Opiera się na tym, co stało się w istniejącym obecnie kodzie, tj. Samym JRE i przykładowym kodzie w tutorialach.Może nie być jeszcze w żadnym przewodniku po stylach, ale jeśli Stuart Marks rozpozna i poleci ten wzór, prawdopodobnie wkrótce stanie się to powszechnym wzorem. Btw, doszedłem do tego samego wniosku niezależnie, więc jest to * naprawdę * rozpoznawalny wzór. – Holger