Что такое уровень Project Language в IntelliJ IDEA?
Я использую Java 7 SDK и IntelliJ IDEA IDE.
java version "1.7.0_11"
Java(TM) SE Runtime Environment (build 1.7.0_11-b21)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)
Я все еще не могу использовать функции Java 7. После нескольких поисковых запросов я смог использовать все функции после установки уровня языка проекта на 7(Diamond, ARM, multicatch etc)
. Что именно это? Если это связано с синтаксисом, основанным на JDK, то используется level 8(Lambda, annotations etc)
? Java 8 еще не выпущен. Java 8 ожидается в марте 2014 года согласно Wiki. Кто-то, пожалуйста, объясните эту концепцию уровня языка.
Ответы
Ответ 1
Наборы параметров Language level
, которые поддерживают поддержку кода в редакторе, должны поддерживать. Например, если вы используете JDK 1.7, но хотите, чтобы ваш код был совместим с JDK 1.6, вы можете установить уровень языка ниже, чем ваш фактический JDK-поддерживающий (6.0 в случае JDK 1.6), и только получить рефакторинг/синтаксис, чтобы поддерживаются на 1.6 и ниже. В зависимости от вашего компилятора он также может дать возможность компиляторам удалить поддержку новых элементов синтаксиса.
8.0 (который, как вы догадываетесь, соответствует Java 8) доступен для людей, которые хотят экспериментировать с одним из снимков Java 8, которые доступны, Поскольку Java 8 не выпущен, уровень языка 8.0 может очень хорошо измениться до выпуска.
Ответ 2
В соответствии с документацией в разделе Изучение общих параметров проекта в IntelliJ Wiki влияние уровня языка проекта intellisense, предоставленный IDE.
Он также диктует поведение компилятора, используемого IntelliJ, когда он компилирует ваш Java-код при разработке.
Этот параметр сообщает всем средствам компилятора, которые будут доступны для проекта. Напр. установка уровня языка в JDK 5 позволит IntelliJ распознавать ключевые слова, такие как перечисление, которые присутствуют в исходном коде.
Ответ 3
Если вы посмотрите параметры команды javac
Java compiler, вы увидите, что -source
и -target
options позволяют вам скомпилировать альтернативные версии Java. Я не уверен в том, какой параметр соответствует уровню языка IntelliJ (это, скорее всего, -source
), но по сути говорит IntelliJ использовать предоставленный Java SDK (в поле Project SDK
) в указанной версии языка Java вместо последний предоставленный упомянутым SDK.
Итак, если у вас установлен Java 7, вы можете установить уровень языка 6.0
, а IntelliJ будет компилировать ваш код по спецификации Java 6 вместо спецификации Java 7. Это включает в себя все предложения в реальном времени и проверку кода, выполненные по мере ввода.
Параметр Java 8, вероятно, связан с тем, что для тестирования доступны бета-версии Java 8.
Я никогда не экспериментировал с тем, что произойдет, если вы установите уровень языка на нечто большее, чем версия JDK.