欢迎来到徐庆高(Tea)的个人博客网站
磨难很爱我,一度将我连根拔起。从惊慌失措到心力交瘁,我孤身一人,但并不孤独无依。依赖那些依赖我的人,信任那些信任我的人,帮助那些给予我帮助的人。如果我愿意,可以分裂成无数面镜子,让他们看见我,就像看见自己。察言观色和模仿学习是我的领域。像每个深受创伤的人那样,最终,我学会了随遇而安。
当前位置: 日志文章 > 详细内容

Idea中Jdk和Language level的指定方式

2025年04月12日 Java
idea中jdk和language level的指定jdk在每个新版本都会有其新特性而新版本一般也会向下兼容旧版本的特性,idea 是对这些 jdk 的新特性是这样介绍的:jdk 6 :@overri

idea中jdk和language level的指定

jdk在每个新版本都会有其新特性

而新版本一般也会向下兼容旧版本的特性,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.

  • 当我们使用 jdk 8 的时候,我们只能向下兼容 jdk 8 及其以下的特性,所以只能选择 8 及其以下的 language level
  • 所以当我们项目使用的是 jdk 8,但是代码却没有使用 jdk 8 的新特性,只需使用 jdk 7 的时候我们可以选择 7 - diamonds,arm,multi-catch etc.
  • 假设我们有一个项目代码使用了jdk 8 新特性:lambda 语法,但是 jdk 版本选择的却是 jdk 7,即使 language level 选择了 8 - lambdas,type annotation etc.

也是没有多大意义的,一样会编译报错。

所以说,我们使用project sdk(software development kit, 软件开发工具包)来选择安装的jdk版本,使用language level来限制jdk的版本。

注意

  • 如果一个项目在本地运行正常,但是language level配置错误,会在linux部署项目时出现路径错误等问题。
  • 做项目时,要注意这地方的配置。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。