Java 8 forEach无法解析为变量

时间:2014-12-30 20:14:41

标签: java-8

我想了解Java 8和Java 7之间的差异。目前我正在研究Java 8 forEach循环。

public class Main {
    public static void main(String[] args){
        List<String> strings = Arrays.asList("hello","my","name","is","test");
        strings.stream().forEach(s -> System.out.println(s));
    }
}

此代码为我生成以下错误:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
s cannot be resolved to a variable
Syntax error on token "-", -- expected
s cannot be resolved to a variable

at Main.main(Main.java:7)

我确信JDK以及JRE都是Java 8,因为计算程序可以从forEach而不是List参数识别->方法。

2 个答案:

答案 0 :(得分:2)

我通过重新安装JRE,JDK并创建了一个全新的eclipse安装来解决这个问题。 显然,旧的日食仍然与Java 7 JDK中的一些剩余物有关。

答案 1 :(得分:0)

在命令提示符下测试java版本 C:GT; java -version

如果它给出1.7,则JDK不会更新为1.8。

在eclipse中你可以使用windows-&gt; preferences-&gt; java-&gt;编译器并选择编译器合规级别为1.8