IDEA language level 介紹

2022-04-27 10:40 更新

其他 IDE 沒有看到類似 ?language level? 的設置,所以這個功能應該算是 IntelliJ IDEA 特有的,可是 IntelliJ IDEA 官網(wǎng)也沒有專門介紹? language level ?的地方,也許 IntelliJ IDEA 認為這個知識點屬于 JDK 范疇所以沒加以介紹吧。所以這里主要我對此的一些理解。我們應該知道 Java JDK 在每個新版本都會有其新特性,而新版本一般也會向下兼容舊版本的特性,IntelliJ IDEA 是對這些 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 介紹

    • 如上第一張圖標注 1,使用的是 JDK 7,顯示的 ?SDK default? 為 ?7 - Diamonds,ARM,multi-catch etc.?
    • 如上第二張圖標注 1,使用的是 JDK 8,顯示的 ?SDK default ?為 ?8 - Lambdas,type annotation etc.?
    • 當我們使用 JDK 8 的時候,我們只能向下兼容 JDK 8 及其以下的特性,所以只能選擇 8 及其以下的 ?language level?。所以當我們項目使用的是 JDK 8,但是代碼卻沒有使用 JDK 8 的新特性,最多使用了 JDK 7 的特性的時候我們可以選擇? 7 - Diamonds,ARM,multi-catch etc.?。

      對此我們總結(jié)? language level?:限定項目編譯檢查時最低要求的 JDK 特性。

      現(xiàn)在假設我們有一個項目代碼使用的 JDK 8 新特性:?lambda ?語法,但是 JDK 選擇的卻是 JDK 7,即使? language level? 選擇了? 8 - Lambdas,type annotation etc.?,也是沒有多大意義的,一樣會編譯報錯。


      以上內(nèi)容是否對您有幫助:
      在線筆記
      App下載
      App下載

      掃描二維碼

      下載編程獅App

      公眾號
      微信公眾號

      編程獅公眾號