是否有返回Stream的方法的命名约定? 我发现唯一提到的是answer on S.O(最后一段),但我看不出它是基于什么。
答案 0 :(得分:13)
自从我写这段以来,我觉得有必要回答。 : - )
假设您有一个表示单个类型事物聚合的类,并且您希望将Stream
个返回给调用者。
如果您对返回的内容完全明确,那么您也可以调用方法stream()
。 JDK中有很多名为stream()
的方法,它们返回一个明显类型的流。
有时你返回的是对同一件事,不同事物或其他事物的不同表述。在这种情况下,似乎有一个约定,选择一个复数名词,表示在流中返回的事物的类型。
要查看这些内容,请查看Javadoc,然后点击顶部导航栏中的使用链接。这将带您进入交叉引用页面。查找具有您感兴趣的类型的返回值的所有方法。
例如,请参阅Stream
,IntStream
,LongStream
和DoubleStream
的使用页面。有很多名为stream()
的方法可以返回流。但也有:
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()
当然,有很多方法都不符合这一点。 NIO文件实用程序类包含Files.find()
,Files.list()
和Files.walk()
。 java.util.regex.Pattern.splitAsStream
返回分割字符串的结果流。我不认为有人喜欢AsStream
后缀,但是再一次,没有人能想到更好的东西。另一方面,用于获取正则表达式匹配结果流的JDK 9增强建议将命名为Matcher.results()
。