Esiste una convenzione di denominazione per i metodi che restituiscono Stream? L'unica menzione che ho trovato è questo answer on S.O (ultimo paragrafo), ma non vedo su cosa si basa.Denominazione dei metodi java che restituiscono i flussi
risposta
Da quando ho scritto quel paragrafo mi sento in dovere di rispondere. :-)
Supponiamo di disporre di una classe che rappresenta un'aggregazione di elementi di un singolo tipo e di restituire uno Stream
al chiamante.
Se è totalmente inequivocabile su ciò che si sta restituendo, si potrebbe anche chiamare il metodo stream()
. Esistono molti metodi nel JDK denominato stream()
che restituiscono un flusso del tipo ovvio.
A volte quello che stai restituendo è rappresentazioni diverse della stessa cosa, o diversi tipi di cose, o qualsiasi altra cosa. In quel caso sembra esserci una convenzione per scegliere un sostantivo plurale che rappresenta il tipo di cose che vengono restituite nel flusso.
Per vedere questi, cercare in Javadoc e fare clic sul collegamento Utilizzare nella barra di navigazione superiore. Questo ti porterà a una pagina di riferimento incrociato. Cercare tutti i metodi che hanno valori di ritorno del tipo che ti interessa.
Ad esempio, vedere i Usa pagine per Stream
, IntStream
, LongStream
e DoubleStream
. Esistono molti metodi denominati stream()
che restituiscono i flussi. Ma ci sono anche:
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()
Naturalmente, ci sono un sacco di metodi che non sono conformi alla presente. La classe di utilità file NIO ha Files.find()
, Files.list()
e Files.walk()
. Un flusso di risultati dalla suddivisione di una stringa viene restituito da java.util.regex.Pattern.splitAsStream
. Non credo che a nessuno piaccia il suffisso AsStream
ma, ancora una volta, nessuno potrebbe pensare a qualcosa di meglio. D'altra parte, un miglioramento proposto di JDK 9 per ottenere un flusso di risultati di corrispondenza regolare è denominato Matcher.results()
.
Illuminante come sempre. Grazie. – Vitaliy
- 1. Qual è lo schema accettato per i metodi di denominazione che restituiscono Attività?
- 2. Convenzioni di denominazione comuni per variabili di tipo di opzione e metodi che li restituiscono
- 3. I metodi statici che restituiscono un valore generano un'eccezione?
- 4. Come implementate i metodi di protocollo che restituiscono Selfs covarianti?
- 5. Metodi che restituiscono valori di ritorno significativi
- 6. Flussi di mulo - Convenzioni di denominazione
- 7. metodi asincroni restituiscono null
- 8. Utilizzo di metodi che restituiscono un valore costante
- 9. Come scriverlo usando i flussi? Java 8
- 10. Ho bisogno di consigli per la denominazione dei metodi wordy
- 11. In che modo .NET ottimizzano i metodi che restituiscono un valore di Struttura?
- 12. Convenzioni di denominazione dei metodi Java per le differenze di tipo e asType?
- 13. Esiste una convenzione di denominazione consigliata per i file che contengono solo funzioni/metodi di estensione?
- 14. Posso demultiplex i flussi?
- 15. Risultati cache java dei metodi
- 16. Mockito mock tutti i metodi chiamano e restituiscono
- 17. Usa i metodi astratti invece dei campi
- 18. Casi di utilizzo per i flussi reattivi utilizzando i flussi 9 di Java in Servlet?
- 19. Convenzione di denominazione per i metodi di estensione Rx?
- 20. Convenzione di denominazione standard per i metodi DAO
- 21. Esistono convenzioni per l'ordinazione dei metodi Java?
- 22. Java - Esistono collettori di flusso che restituiscono ImmutableMap?
- 23. Vararg in overloading dei metodi in Java
- 24. Differenza tra flussi java 8 e flussi paralleli
- 25. copia tutti i nomi dei metodi - Intellij
- 26. Equivalente dei metodi anonimi C# in Java?
- 27. Analisi dei flussi Azure Storm e Azure
- 28. I metodi Java nativi equivalgono ai metodi Java statici?
- 29. Sovrascrittura dei metodi privati in Java
- 30. Convenzioni di denominazione Python per funzioni che modificano l'oggetto o restituiscono una copia modificata
È basato su ciò che è diventato evidente nel codice ora esistente, cioè lo stesso JRE e il codice di esempio nei tutorial.Potrebbe non essere ancora in una guida di stile, ma se Stuart Marks riconosce e raccomanda quel modello, è probabile che presto sarà un modello comune. A proposito, sono arrivato alla stessa conclusione in modo indipendente, quindi è * davvero * un modello riconoscibile. – Holger