首页 > 解决方案 > 在 Java 16 项目中声明时,如何解决错误“-source 11 中不支持记录(使用 -source 16 或更高版本启用记录)”?

问题描述

我已经安装了提供 java 16 SDK 的 graalvm-ce-java16-21.2.0 并下载并安装了 openjfx.io OpenJFX 16 并在 NetBeans 12.4 中开发了一个 javafx Maven 项目,它运行良好。现在我声明了以下记录(Java 14 中引入的新数据记录类型):

record EventTargetFinder(List<Class<? extends Node>> filterTargetTypes) { EventTargetFinder(List<Class<? extends Node>> filterTargetTypes) { this.filterTargetTypes = Collections.unmodifiableList(filterTargetTypes); }

NetBeans 告诉我“-source 11 不支持记录(使用 -source 16 或更高版本来启用记录)”。

我搜索了 Google 和 StackOverFlow,但找不到相关信息。我检查了 NetBeans 项目属性,发现该项目使用 Java 16 编译,但在“源”类别中有标签“源/二进制格式:”,其中包含选择条目“11”的组合框,我无法更改选择。

任何克服这个困难的帮助将不胜感激。

标签: java-record

解决方案


那么你实际使用的是什么构建?Maven 还是 Netbeans?查看您的 POM 并查看您正在使用的源和目标设置,然后进行纯 Maven 构建。


推荐阅读