繁体   English   中英

IntelliJ IDEA中的项目语言级别是什么?

[英]What is Project Language level in 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尚未发布。 根据Wiki,预计Java 8将于2014年3月发布。 有人请解释这个语言水平的概念。

Language level设置设置编辑器中应支持的代码帮助功能。 例如,如果您正在使用JDK 1.7但希望您的代码与JDK 1.6兼容,则可以将语言级别设置为低于实际JDK支持(在JDK 1.6的情况下为6.0),并且仅获得重构/语法建议支持1.6及更低版本。 根据您的编译器,它还可以为编译器选项提供删除对较新语法元素的支持。

8.0(正如您猜测的那样对应于Java 8)可供希望尝试使用其中一个Java 8快照的人使用。 由于Java 8未发布,语言级别8.0可能会在发布之前发生很大变化。

根据IntelliJ Wiki中 探索常规项目设置部分中的文档,项目语言级别会影响IDE提供的智能感知。

它还规定了IntelliJ在开发时编译Java代码时使用的编译器的行为。

此设置告诉编译器可用于项目的所有工具。 例如,将语言级别设置为JDK 5将允许IntelliJ识别源代码中存在的关键字,例如枚举

如果查看javac Java编译器命令选项 ,您将看到-source-target选项允许您针对Java的备用版本进行编译。 我不确定IntelliJ的语言级别设置对应哪个选项(很可能是-source ),但它实质上告诉IntelliJ使用指定Java语言版本中提供的Java SDK(在Project SDK字段中)而不是最新提供的通过说SDK。

因此,在安装Java 7时,可以将语言级别设置为6.0 ,IntelliJ将根据Java 6规范而不是Java 7规范编译代码。 这包括您键入时所做的所有实时建议和代码检查。

Java 8选项可能是因为Java 8的beta版本可用于测试。

如果你将语言级别设置为高于JDK版本的东西,我从未尝试过会发生什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM