错误:某些 lambda 表达式中的表达式开头非法
Posted
技术标签:
【中文标题】错误:某些 lambda 表达式中的表达式开头非法【英文标题】:error: illegal start of expression in some lambda expressions 【发布时间】:2015-12-16 09:21:55 【问题描述】:我在java中有以下函数:
private static Predicate<SomeObject> isNotCancelled()
return i -> !i.getStatus().equals("Cancelled");
使用以下激活器命令时:compile、run、test 或 testOnly。一切正常,没有编译错误,应用程序按我的预期运行。
但是当我做 activator testProd 或 activator stage 时会出现以下错误:
[error] /path_to_class/SomeClass.java:34: error: illegal start of expression
[error] return i -> !i.getStatus().equals("Cancelled")
[error] ^
有人可以帮我理解为什么会这样吗?
提前致谢。
【问题讨论】:
您确定您使用的是 Java 8 编译器吗? 嗯,我认为并希望如此。我在 PC 上安装的唯一版本是 javac 1.8.0_66。 你是如何编译你的项目的?你在使用 IDE 吗? 我正在使用命令行“activator compile”命令。我的激活器版本是“activator-dist-1.3.6” 我已更改我的激活器启动脚本以打印 java 版本,它返回版本 1.8.0_66 【参考方案1】:我通过升级 activator、sbt 和 play 版本解决了这个问题:
activator-dist-1.3.7(我之前的版本是1.3.6) sbt 0.13.9(我之前的版本是0.13.8) 玩2.4.4(我之前的版本是2.4.4)【讨论】:
以上是关于错误:某些 lambda 表达式中的表达式开头非法的主要内容,如果未能解决你的问题,请参考以下文章
java报错说方法语句是非法表达式的开始,需要:求大神指导!