Подтвердить что ты не робот

Что такое уровень 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. Кто-то, пожалуйста, объясните эту концепцию уровня языка.

4b9b3361

Ответ 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.