我想了解Java 8和Java 7之间的差异。目前我正在研究Java 8 forEach
循环。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,因为compuler可以识别来自List
的forEach
方法,但而不是->
参数。
这会给你一个想法http://www.adam-bien.com/roller/abien/ entry/java_8_from_a_for – Sorceri
这听起来像是一个Java 7与Java 8的错误。如果您运行'System.out.println(System.getProperty(“java.version”));'',程序的输出是什么? – wassgren
我相信我知道发生了什么事。 'System.getProperty()'输出的JRE是'1.8.0_25'。但是,JDK是1.7。上帝知道Eclipse从哪里设置。 –