簡體   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