IntelliJ:求值lambda表达式在调试时引发编译错误

时间:2015-04-10 07:02:42

标签: intellij-idea lambda

我想用Intellij“评估代码片段”功能来评估包括lambda表达式的代码。但是,Intellij引发了错误Unable to compile for target level 1.8. Need to run IDEA on java version at least 1.8, currently running on 1.6.0_65-b14-462-11M4609

评估代码非常简单,如下所示。

Set<Integer> set = new HashSet<>();
set.add(1);
set.stream().map(v->v).collect(Collectors.toSet());

我的Intellij版本是14.0.3,根据official document,版本14支持lambda表达式评估。

该功能如何可用?

enter image description here

3 个答案:

答案 0 :(得分:1)

您可以切换JDK的运行时版本:

  1. 启动IDE,帮助|查找操作(在Mac上为Ctrl + Shift + A或Cmd + Shift + A),键入“ Switch IDE Boot JDK”,然后按Enter。
  2. 启动IDE,使用“帮助” |“帮助”。查找操作(在Mac上为Ctrl + Shift + A或Cmd + Shift + A),键入“ Switch IDE Boot JDK”,然后按Enter。 出现“切换IDE启动JDK”对话框。从下拉列表中选择版本,或单击“…”条目以指定自定义位置。

答案 1 :(得分:0)

汇总来自adrian langeBohuslav Burghardt的评论,要么升级到Java 1.8捆绑的最新IntelliJ 14.1,要么将当前的IntelliJ切换为使用Java 1.8。请参阅错误IDEA-132099

切换到Java 1.8:

  1. 安装Java 8
  2. 更改IntelliJ以使用Java 8.请参阅these instructionsProject structure

答案 2 :(得分:0)

Unable to compile for target level 1.8...Currently running on version 1.6

我的猜测是你的项目是在一个不支持lambdas的Java版本上运行的。确保安装了Java 8,并确保将项目级别更改为使用Java 8,如下所示: 请注意,它明确提到了lambdas