#java-record
Вопрос:
Я установил graalvm-ce-java16-21.2.0, который предоставляет SDK java 16, и скачал и установил openjfx.io OpenJFX 16 и разработали проекты javafx Maven в NetBeans 12.4, которые отлично работают с Беном. Теперь я объявил следующую запись (новый тип записи данных, введенный в Java 14):
record EventTargetFinder(Listlt;Classlt;? extends Nodegt;gt; filterTargetTypes) { EventTargetFinder(Listlt;Classlt;? extends Nodegt;gt; filterTargetTypes) { this.filterTargetTypes = Collections.unmodifiableList(filterTargetTypes); }
NetBeans говорит мне: «записи не поддерживаются в исходном коде 11 (используйте исходный код 16 или выше для включения записей)».
Я искал в Google и StackOverflow и не смог найти соответствующую информацию. Я изучил свойства проекта NetBeans и обнаружил, что проект компилируется с Java 16, но в категории «Источники» есть метка «Исходный/двоичный формат:» с полем со списком с выбранной записью «11», и я не могу изменить выбор.
Любая помощь в преодолении этого горба была бы признательна.
Ответ №1:
Итак, что вы на самом деле используете для сборки? Maven или Netbeans? Загляните в свой POM и посмотрите, какие исходные и целевые настройки вы используете, а затем выполните чистую сборку Maven.
Комментарии:
1. Мой pom.xml показывает, что мои свойства maven как источника, так и цели равны 16. Я не уверен, что подразумевается под «чистой сборкой Maven», но я щелкнул правой кнопкой мыши pom.xml файл и выбрал «jlink», и это дало мне ту же ошибку. Не знаю, является ли это релавантом, но я создал проект, выбрав «Java с Maven» в качестве категории и «Простой архетип Maven JavaFX (Глюон)» в качестве проекта.