此语言级别IDEA不支持lambda表达式

时间:2015-04-28 13:51:53

标签: intellij-idea lambda javafx ide

我正在尝试创建我的第一个fxml java项目,并且在初始化阶段我正在尝试为表columnt设置单元格值工厂,例如

      @FXML
        private void initialize() {
        agentId.setCellValueFactory(cellData -> cellData.getValue().getIdProperty());
       .....}

,这是带下划线的红色,并给出了标题中提到的错误。更改项目结构中的语言级别不起作用。还有什么可能是错误的原因?

UPD:我发现安装带有lambdas的java是必要的,而lambdas并未包含在官方发行版中。我做到了,但它没有帮助。我已经下载了here

7 个答案:

答案 0 :(得分:21)

我必须做一些事情来解决这个问题。

  1. 文件>项目结构>项目> Project SDK:将其更改为Java 1.8.XX
  2. 文件>项目结构>项目>语言水平:SDK 8(在我的情况下,SDK默认已经是8)
  3. 文件>项目结构>模块>来源> SDK 8(在我的情况下,SDK默认已经是8)
  4. 文件>设置>构建,执行,部署>编译器> Java编译器>项目字节码版本> 1.8
  5. 文件>设置>构建,执行,部署>编译器> Java编译器>每模块字节码版本>目标字节码版本> 1.8
  6. 这应该可以解决问题。

答案 1 :(得分:11)

答案如下:我不仅要改变项目结构 - >项目的语言水平,还要改变项目结构 - >模块也是。

答案 2 :(得分:5)

如果您使用的是Android Studio版本3.2.1,则可以使用以下提及的步骤更改语言级别:

  1. 转到项目结构
  2. 在“模块”部分下,单击应用。
  3. 在“属性”标签中,将“源兼容性”更改为1.8。

答案 3 :(得分:4)

  1. 单击Android Studio左上角的文件
  2. 单击项目结构
  3. 点击 App
  4. 选择属性并将 Source Compatibility 设置为 1.8

答案 4 :(得分:2)

对于“ Android Studio” 3.3版:

  1. 单击“文件”(“ Android Studio”的左上角)。
  2. 单击“项目结构”。
  3. 单击“应用”(在“模块”下)。
  4. 在“属性”标签中,将“源兼容性”值更改为“ 1.8”。
  5. 在“属性”标签中,将“目标兼容性”值更改为“ 1.8”。

此解决方案对我有用。

答案 5 :(得分:1)

如果您已完成上述操作但仍未修复,并且如果您要设置新模块,请检查您的模块源文件夹是否尚未添加到父模块。我发现它是在1.5编译的,因为这是父模块设置(因为父级不包含java源代码)。将其更新到1.8也最终消除了警告并从父模块中删除了模块的源文件夹。 文件>项目结构>模块(模块的父模)>来源>语言水平

答案 6 :(得分:0)

请尝试更改以下值(它对我有用),

  • 文件 > 项目结构 > 项目 > 项目语言级别 = "8 - Lambda、类型注释等。"
  • 文件 > 项目结构 > 模块 > 语言级别 = "8 - Lambdas, 类型注释等。”