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

lambda expressions are not supported at this language level IDEA

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

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

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

UPD: 我发现安装 java 和 lambdas 是必要的,它没有包含在正式版本中。我做到了,但它没有帮助。我已经下载了 here

答案如下:我不仅要更改项目结构->项目中的语言级别,还要更改项目结构->模块中的语言级别。

我不得不做一些事情来解决这个问题。

  1. 文件 > 项目结构 > 项目 > 项目 SDK:将其更改为 Java 1.8.XX
  2. 文件 > 项目结构 > 项目 > 语言级别:SDK 8(在我的例子中,SDK 默认已经是 8)
  3. 文件 > 项目结构 > 模块 > 来源 > SDK 8(在我的例子中,SDK 默认已经是 8)
  4. 文件 > 设置 > 构建、执行、部署 > 编译器 > Java 编译器 > 项目字节码版本 > 1.8
  5. 文件 > 设置 > 构建、执行、部署 > 编译器 > Java 编译器 > 每模块字节码版本 > 目标字节码版本 > 1.8

这应该可以解决问题。

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

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

  1. 转到项目结构
  2. 在模块部分,点击应用。
  3. 在属性选项卡中,将源兼容性更改为 1.8。
  1. 单击文件,Android Studio 中的左上角。
  2. 单击项目结构
  3. 点击应用程序
  4. 选择属性并将源兼容性设置为1.8

对于 "Android Studio" 3.3 版:

  1. 单击 "File"("Android Studio" 中的左上角)。
  2. 单击 "Project structure"。
  3. 单击 "App"(在 "Modules" 下)。
  4. 在 "Properties" 选项卡中,将 "Source Compatibility" 值更改为“1.8”。
  5. 在 "Properties" 选项卡中,将 "Target Compatibility" 值更改为“1.8”。

这个解决方案对我有用。

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

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