W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
其他 IDE 沒有看到類似 ?language level
? 的設(shè)置,所以這個(gè)功能應(yīng)該算是 IntelliJ IDEA 特有的,可是 IntelliJ IDEA 官網(wǎng)也沒有專門介紹? language level
?的地方,也許 IntelliJ IDEA 認(rèn)為這個(gè)知識(shí)點(diǎn)屬于 JDK 范疇所以沒加以介紹吧。所以這里主要我對(duì)此的一些理解。我們應(yīng)該知道 Java JDK 在每個(gè)新版本都會(huì)有其新特性,而新版本一般也會(huì)向下兼容舊版本的特性,IntelliJ
IDEA 是對(duì)這些 JDK 的新特性是這樣介紹的:
JDK 6 的新特性:@Override in interfaces JDK 7 的新特性:Diamonds,ARM,multi-catch etc. JDK 8 的新特性:Lambdas,type annotation etc. JDK 9 的新特性:Jigsaw project etc. ? etc. == et cetera == and so on == 等等
?
language level 介紹
language level 介紹
如上第一張圖標(biāo)注 1,使用的是 JDK 7,顯示的 ? SDK default
? 為 ?7 - Diamonds,ARM,multi-catch etc.
?如上第二張圖標(biāo)注 1,使用的是 JDK 8,顯示的 ? SDK default
?為 ?8 - Lambdas,type annotation etc.
?
當(dāng)我們使用 JDK 8 的時(shí)候,我們只能向下兼容 JDK 8 及其以下的特性,所以只能選擇 8 及其以下的 ?language level
?。所以當(dāng)我們項(xiàng)目使用的是 JDK 8,但是代碼卻沒有使用 JDK 8 的新特性,最多使用了 JDK 7 的特性的時(shí)候我們可以選擇? 7 - Diamonds,ARM,multi-catch etc.
?。
對(duì)此我們總結(jié)? language level
?:限定項(xiàng)目編譯檢查時(shí)最低要求的 JDK 特性。
現(xiàn)在假設(shè)我們有一個(gè)項(xiàng)目代碼使用的 JDK 8 新特性:?lambda
?語(yǔ)法,但是 JDK 選擇的卻是 JDK 7,即使? language level
? 選擇了? 8 - Lambdas,type annotation etc.
?,也是沒有多大意義的,一樣會(huì)編譯報(bào)錯(cuò)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: