Java 8 Java 8 forEach无法解析为变量
我想了解Java8和Java7之间的区别。目前,我正在研究Java8Java 8 Java 8 forEach无法解析为变量,java-8,Java 8,我想了解Java8和Java7之间的区别。目前,我正在研究Java8forEach循环 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.print
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));
}
}
我确信JDK和JRE都是Java 8,因为计算机可以从
列表中识别forEach
方法,但不能识别->
参数。我通过重新安装JRE、JDK解决了这个问题,并创建了一个全新的eclipse安装。
显然,旧的eclipse仍然与Java7JDK的一些遗留问题相关联。在命令提示符下测试Java版本
c:>java版本
如果它给出1.7,那么您的JDK不会更新为1.8
在eclipse中,您可以使用windows->preferences->java->compiler并选择compiler compliance level为1.8,这会让您了解这听起来像是java 7 vs java 8的bug。如果运行System.out.println(System.getProperty(“java.version”)),程序的输出是什么代码>?我相信我知道发生了什么。JRE是由System.getProperty()
输出的1.8.0\u 25
。然而,JDK是1.7。天知道Eclipse的设置来自哪里。很好,问题解决了;)
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)