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的function。 经过一番Googlesearch,我可以在将项目语言级别设置为7(Diamond, ARM, multicatch etc)
之后使用所有的function。 这究竟是什么? 如果这与基于JDK使用的句法有什么关系,那么level 8(Lambda, annotations etc)
什么? Java 8尚未发布。 根据Wiki,Java 8预计将在2014年3月份发布。 有人请解释这个语言层面的概念。
Language level
设置设置编辑器中代码辅助function应支持哪些function。 例如,如果您使用的是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规范编译你的代码。 这包括您input的所有实时build议和代码检查。
Java 8选项可能是由于Java 8的beta版本可用于testing。
我从来没有尝试过如果将语言级别设置为高于JDK版本的情况会发生什么情况。
- IntelliJ中有一个控制台滚动锁吗?
- IntelliJ IDEA可以通过插件封装Webstorm和PHPStorm的所有function吗?
- 在Android Studio中支持@SuppressWarnings值
- intellij想法运行configuration备份
- 任何方式(或快捷方式)自动导入IntelliJ IDEA中的类像在Eclipse中?
- 我应该添加到SVN的文件在使用Android Studio的项目中忽略
- IntelliJ IDEA 12代码完成,没有大写
- 在IntelliJ IDEA中运行时发生java.lang.ClassNotFoundException
- IntelliJ Idea 12:我如何自动导入命名空间?