codecamp

IDEA language level 介绍

其他 IDE 没有看到类似 ​language level​ 的设置,所以这个功能应该算是 IntelliJ IDEA 特有的,可是 IntelliJ IDEA 官网也没有专门介绍​ 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.​。

      对此我们总结​ language level​:限定项目编译检查时最低要求的 JDK 特性。

      现在假设我们有一个项目代码使用的 JDK 8 新特性:​lambda ​语法,但是 JDK 选择的却是 JDK 7,即使​ language level​ 选择了​ 8 - Lambdas,type annotation etc.​,也是没有多大意义的,一样会编译报错。


      IDEA SDK(Software Development Kit) 介绍
      IDEA Module 下的 SDK 和 language level
      温馨提示
      下载编程狮App,免费阅读超1000+编程语言教程
      取消
      确定
      目录

      IDEA 简单Java 项目创建和项目配置文件

      IDEA 前端代码模板:Emmet

      IDEA 特殊代码模板:Postfix Completion

      IntelliJ IDEA 配合 Maven 的一些要点

      IntelliJ IDEA 推荐设置

      IDEA 的 Java 热部署插件 JRebel 安装及使用

      关闭

      MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }