命名返回流的java方法

命名返回流的java方法,java,java-8,java-stream,api-design,Java,Java 8,Java Stream,Api Design,返回流的方法是否有命名约定? 我发现唯一提到的是这一段(最后一段),但我不知道它是基于什么。因为我写了那一段,我觉得不得不回答。:-) 假设您有一个表示单一类型事物聚合的类,并且希望将它们的流返回给调用者 如果返回的内容完全不含糊,那么不妨调用方法stream()。JDK中有许多名为stream()的方法返回明显类型的流 有时,你返回的是同一事物的不同表现,或不同种类的事物,或任何东西。在这种情况下,似乎有一种惯例,即选择一个复数名词来表示流中返回的事物的类型 要查看这些内容,请查看Javado

返回流的方法是否有命名约定?
我发现唯一提到的是这一段(最后一段),但我不知道它是基于什么。

因为我写了那一段,我觉得不得不回答。:-)

假设您有一个表示单一类型事物聚合的类,并且希望将它们的
返回给调用者

如果返回的内容完全不含糊,那么不妨调用方法
stream()
。JDK中有许多名为
stream()
的方法返回明显类型的流

有时,你返回的是同一事物的不同表现,或不同种类的事物,或任何东西。在这种情况下,似乎有一种惯例,即选择一个复数名词来表示流中返回的事物的类型

要查看这些内容,请查看Javadoc并单击顶部导航栏中的使用链接。这将带您进入交叉参考页。查找所有具有您感兴趣的类型的返回值的方法

例如,请参见、、和的使用页面。有许多名为
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文件实用程序类有
文件.find()
文件.list()
,和
文件.walk()
。拆分字符串的结果流由
java.util.regex.Pattern.splitAsStream
返回。我不认为有人喜欢AsStream的后缀,但话说回来,没有人能想出更好的。另一方面,将命名一个建议的JDK 9增强,以获得正则表达式匹配结果流。

它基于现有代码中的内容,即JRE本身和教程中的示例代码。它可能还没有出现在任何风格指南中,但如果斯图尔特·马克斯认识到并推荐这种模式,它很可能很快就会成为一种常见的模式。顺便说一句,我独立得出了相同的结论,所以这确实是一个可识别的模式。一如既往的启发。谢谢