println 不能解析为变量



我正在大学学习面向对象编程,我的教授正在做一个Java上的流的例子。不幸的是,当我尝试运行此代码时,它说"println 无法解析为变量"System.out::println. 它还说要删除两个冒号, 而在我教授的日食中,它确实有效。

这是代码。我正在 ubuntu 的 eclipse 上运行它,我的 java 版本是 1.8 更新 91

package stream;
import java.util.Arrays;
public class StreamExamples {
public static void main(String[] args){
String text = "I have no idea what is the problem";
String[] words = text.split(" ");
Arrays.stream(words)        
.sorted()
.limit(3)
.forEach(System.out::println);
}
}

您运行的 Eclipse 版本很可能不理解 Java 8 语法。

您需要运行当前的 Eclipse 4.6(Neon)或以前的版本 4.5(Mars)才能获得完整的 Java 8 支持。您的代码在 Eclipse Neon 上运行良好。

1) 通过右键单击您的项目、构建路径>配置构建路径来检查您的构建路径。库选项卡应显示版本 1.8 的 JRE,如果不是这种情况,请单击编辑并选择至少为 8 版本的 JRE。

2) 通过右键单击您的项目、属性> Java 编译器来检查编译器设置。将编译器合规性级别更改为 1.8。

最新更新