System.out::println中::符号有什么用
时间: 2023-09-23 10:02:57 浏览: 224
在Java中,双冒号(::)被称为方法引用(Method Reference)操作符,它是Java 8中引入的一个新特性。在System.out::println这个语法中,::符号用于将方法(这里是println方法)作为参数传递给另一个方法(这里是System.out的print方法)。
更具体地说,System.out::println可以看作是一个Lambda表达式的简写形式,它表示一个函数式接口PrintStream的方法println的实现。这里的::符号用于将这个方法的引用传递给一个接受PrintStream类型对象作为参数的方法,以便在这个对象上调用println方法。
使用方法引用可以使代码更加简洁和易读,尤其是当需要传递一个方法作为参数时。
相关问题
Hello.java:4: 错误: 找不到符号 System.out.System.out.println( "World" ); ^ 符号: 变量 System 位置: 类型为PrintStream的变量 out 1
这个错误提示是因为在你的代码第4行中,语法错误了。应该是System.out.println而不是System.out.System.out.println。System.out是一个PrintStream对象,负责向控制台打印输出。正确的代码应该是:
```
System.out.println("World");
```
注意,out是PrintStream类的一个静态成员变量,可以直接通过System类访问。
system.out::print是什么对象
`System.out::println` 是Java 8引入的一种语法糖,它表示 `System.out.println` 这个方法的引用或者叫lambda表达式的一部分。这里的 `::` 符号叫做方法引用,用来简洁地表示特定对象的方法调用。对于 `System.out::println`,它不是一个对象,而是指向 `System.out.println` 方法的一个引用。
当你看到 `System.out::println`,实际上它等同于 `System.out.println()` 的一个引用,允许你在不创建 `PrintStream` 实例的情况下直接调用 `println` 方法,这对于操作标准输出(如控制台)非常有用。比如,在遍历集合时,可以这样使用:
```java
List<String> myList = ...;
myList.forEach(System.out::println); // 直接对每个元素执行 println,无需创建 PrintStream 对象
```
相比之下,如果使用传统方式,你会创建 `PrintStream` 或 `BufferedWriter`,然后写入 `println` 或其他方法:
```java
PrintStream out = new PrintStream(System.out);
out.println("Hello"); // 更繁琐的写法
```
阅读全文
相关推荐

















