命名返回流的java方法
是否有返回Stream的方法的命名约定? 我发现唯一提到的就是关于SO的答案 (最后一段),但我不知道它的基础是什么。
自从我写了那段以来,我觉得有必要回答。 🙂
假设您有一个表示单个类型事物聚合的类,并且您希望将它们的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()
。