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

esbemjvw  于 7个月前  发布在  IntelliJ IDEA
关注(0)|答案(4)|浏览(160)

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月发布。请有人解释这个语言级别的概念。

uqxowvwt

uqxowvwt1#

Language level设置设置了编辑器中的代码帮助应该支持的特性。例如,如果您使用JDK 1.7,但希望您的代码与JDK 1.6兼容,您可以将语言级别设置为低于实际JDK支持的级别(在JDK 1.6的情况下为6.0),并且只获得1.6及更低版本支持的重构/语法建议。根据您的编译器,它还可以给予编译器选项以移除对较新语法元素的支持。
Java 8.0(你猜它对应于Java 8)是为那些想尝试使用Java 8 snapshots的人准备的。由于Java 8还没有发布,语言级别8.0在发布之前很可能会发生变化。

mlmc2os5

mlmc2os52#

根据IntelliJ Wiki探索常规项目设置部分中的文档,项目语言级别会影响IDE提供的智能感知。
它还规定了在您开发时编译Java代码时,IntelliJ所使用的编译器的行为。
这个设置告诉编译器的所有功能都可以用于项目。例如,将语言级别设置为JDK 5将允许IntelliJ识别源代码中存在的关键字,如enum

pexxcrt2

pexxcrt23#

如果查看javac Java编译器命令的选项,您会发现-source-target选项允许您针对Java的其他版本进行编译。(很可能是-source),但它本质上告诉IntelliJ使用指定Java语言版本中提供的Java SDK(在Project SDK字段中),而不是所述SDK提供的最新版本。
因此,当你安装了Java 7时,你可以将语言级别设置为6.0,IntelliJ将根据Java 6规范而不是Java 7规范编译你的代码。这包括所有的实时建议和代码检查。
Java 8选项可能是由于Java 8的beta版本可用于测试。
我从来没有尝试过,如果您将语言级别设置为比JDK版本更高的级别,会发生什么。

rt4zxlrg

rt4zxlrg4#

解释图形导航
您可以通过File > Project Structure...> Project(在Project Settings部分)访问Language level配置


的数据
在设置Language level时,请注意不同的语言级别被划分为LTS VersionsOther Versions标题


相关问题