Я пытаюсь использовать java.lang.function.Function
в моей кодовой базе Java 8, но я продолжаю получать следующую ошибку в Intellij.
Использование API, задокументированного как @since 1.6+. Эта проверка находит все способы использования, которые имеют тег @since в своей документации. Это может быть полезно, когда разработка выполняется под более новой версией SDK в качестве целевой платформы для производства.
Кажется, у меня правильные настройки проекта и компилятора
Настройки проекта: (Файл -> Структура проекта)
Project Settings -> Project -> Project SDK = Java 1.8
Project Settings -> Project -> Project Language Level = 8 - Lambdas, Type Annotations etc
Настройки компилятора: (Файл -> Настройки)
Build, Execution, Deployment -> Compiler -> Java Compiler -> Project Bytecode Version : 1.8
Build, Execution, Deployment -> Compiler -> Java Compiler -> Per module Bytecode Version -> Target Bytecode Version : 1.8
В чем проблема?
источник
Project default
языкового уровня (наSources
вкладке).Project Settings
находится вFile -> Project Structure
Если вы используете maven, то добавьте строку ниже в файле конфигурации pom.xml, а затем заново импортируйте или создайте его из maven.
В противном случае выберите компилятор Java и уровень языка снизу пути.
Файл> Структура проекта> Настройки проекта> Модули> Имя вашего модуля> Источники> Уровень языка> выберите тот, который вам нужен.
Изменить уровень языка здесь: -
источник
На самом деле, если вы используете Maven и
pom.xml
свойства вашего проекта настроены правильноВы можете повторно импортировать параметры Maven в
intellij-idea
проект - щелкните правой кнопкой мыши корневую запись проекта,Maven -> Reimport
которая находится внизу.источник
Я просто исправил это следующим образом:
Щелкните правой кнопкой мыши проект -> Открыть Настройки модуля -> Модули -> Источники -> 8 или выше
А потом
Если вы все еще сталкиваетесь с ошибкой и используете maven , вы должны добавить конфигурацию сборки в ваш
pom.xml
:источник
Файл> Настройки> Сборка, выполнение, развертывание> Компилятор Java
Измените версию целевого байт-кода на 1.8 модуля, для которого вы работаете.
Если вы используете Maven
Добавьте плагин компилятора в pom.xml под узлом проекта верхнего уровня:
источник
Если вы используете Gradle, не забудьте убедиться, что для следующего установлено значение 1.8, а не 1.5 (например, по какой-то причудливой причине в Intelij по умолчанию оно равно 1.5), поэтому независимо от того, что вы делаете на уровне проекта, чтобы установить компилятор Уровень совместимости, этот параметр будет вызывать проблемы с функциями Java 8, которые он не распознает:
источник
Может быть, ваш конфиг репозитория имеет свойства, включая версию компилятора. изучить
settings.xml
файл.источник
Есть еще одно место, которое может вызывать эту проблему, независимо от того, используете ли вы Maven или Gradle.
По
Settings | Editor | Inspections | Java language level migration aids | Usages of API which isn't available at the configured language level
умолчанию (я считаю) установлено значениеRespecting to project language level settings
, но его можно установить равнымHigher than:
, что игнорирует настройки проекта.Это означает, что если вы будете следовать инструкциям в других ответах и установить языковой уровень вашего проекта, скажем, 8, но проверка будет установлена на
Higher than: 7
, IDEA все равно будет соответствовать.источник