在 java 8 中使用 lambda 时出现表达式非法开始错误

问题描述 投票:0回答:2

我最近将我的 java 更新到了第 8 版并尝试了一些 Lambda,但出现了错误。

我的代码

String[] st = {"ak","ss","dd"};

Arrays.asList(st).forEach(data -> System.out.println(data));

控制台的输出是

PS E:\> javac .\Lambdas.java
.\Lambdas.java:11: error: illegal start of expression
                   Arrays.asList(st).forEach(data -> System.out.println(data));
                                                   ^
1 error
PS E:\> java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

这很奇怪,因为我有上面看到的 java 8,但我的代码没有编译。

我有什么做错的地方吗?

java list lambda java-8 syntax-error
2个回答
3
投票

这是编译器的问题。在我的环境变量中,我指向旧的 java 7 版本。将其更改为 8 后,代码已编译。


0
投票

为什么在Java 17中添加“if”条件仍然出现同样的错误:

Arrays.asList(st).forEach(data -> if (data != null) System.out.println(data));
© www.soinside.com 2019 - 2024. All rights reserved.