java - Java 8 中的 "System.out::println"有什么用

标签 java java-8

我在 java 8 中看到了一个迭代集合的代码。

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
numbers.forEach(System.out::println);

System.out::println 的功能是什么?以及上面的代码如何遍历列表。

以及运算符 :: 有什么用,还有什么地方可以使用这个运算符?

最佳答案

它被称为“方法引用”,它是如下表达式的语法糖:

numbers.forEach(x -> System.out.println(x));

在这里,您实际上需要名称 x 来为每个元素调用 println。这就是方法引用有用的地方 - :: 运算符表示您将使用参数调用 println 方法,您没有明确指定该参数的名称:

numbers.forEach(System.out::println);

关于java - Java 8 中的 "System.out::println"有什么用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31020269/

相关文章:

java - String.replaceAll() 抛出 IndexOutOfBoundsException

java - 对多个函数执行相同的操作

java - 在 Java 3d 中将平截头体转换为投影矩阵

java - 在 CompletableFuture 的函数中抛出原始(内部)异常?

java - 调节 java 流的过滤器

java - 如何将流与干扰方法和构造函数一起使用,为什么不使用 .peek()?

java - SPOCK:如何模拟供应商行为

java - 获取开始菜单的截图

java - IndexOutOfBoundsException 后检查

java - HashMap 。使用自定义类型作为值