java: -source 1.5 中不支持 lambda 表达式

我们在使用IntelliJ IDEA编译项目的时候,会因为各种原因导致自动更改项目的language level ,因此需要重新设置, 例如我们在使用IntelliJ IDEA导入项目时,有时默认的java language level是1.5,甚至我们在使用IntelliJ IDEA提示自动导入Maven依赖时也会自动修改 language level,level过低很多新的语法就会报错,因此我们需要修改项目中Java的language level,下面就跟着小编一起解决IDEA自动重置Language Level的问题吧。
1、使用IDEA时,导入的Maven项目默认的Language Level和JavaCompiler JDK的版本都是1.5,例如上图中使用菱形运算符就会报错,所以项目可能出现一堆错。我们展开项目的目录,可以在External Libraries看到jdk的版本,如下图所示,虽然External Libraries的jdk版本是1.8,但是代码中依旧提示java language level是1.5。
2、首先我们可以修改JavaCompiler的版本,在菜单栏找到File–》Setting–》Build,Execution,Deployment–》Compiler–》Java Compiler–》Project Bytecode Version,改成你想要的JDK版本,如下图所示。
java: -source 1.5 中不支持 lambda 表达式
3、然后是在项目的Module中设置了默认的JDK版本,我们在工程上按快捷键F4就能够到这个设置页面,然后在右侧设置Language level即可,如下图所示。
java: -source 1.5 中不支持 lambda 表达式
4、另外我们还可以通过File–》Project Structure–》Project Settings–》Project–》Project language level来修改。上述几种设置都会有问题,在使用一段时间后可能还会因为某些操作又自动重置成JDK1.5了,版本太低很多新特性没办法使用,导致编译出错。
java: -source 1.5 中不支持 lambda 表达式
java: -source 1.5 中不支持 lambda 表达式
5、以上的操作在Maven项目发生变化时而自动update时,依然会被重置,因此我们只需要保证上面的设置版本号是对的即可,最根本的解决方案就是在pom.xml文件中指定项目编译的Java版本,即maven-compiler-plugin的版本,该版本会影响Language Level和JavaCompiler,修改后项目默认就使用了该配置,如下图所示。
java: -source 1.5 中不支持 lambda 表达式

上一篇:python loger 模板


下一篇:PAT (Basic Level) Practice 1087 有多少不同的值 (20 分)