Intelijj中报java版本错误

本文讲述了作者在重新编译一个老项目时遇到的版本错误,涉及Diamond类型不支持和lambda表达式的源码限制。通过调整IntelliJIDEA的Java版本设置、Maven的用户设置以及pom.xml中的编译配置,成功解决了这些问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这次编译一个半年没动过的老项目,报了几次版本错误,通过多次尝试最终解决掉了该问题

 

错误一:Diamond types are not supported at language level '6'

错误背景

该错误出现在intelijj中,打开项目后,下面的代码的后一个菱形括号报红,表明当前版本不支持new ArrayList<>()这种写法

List<String> list = new ArrayList<>()

修改方法

第1个需要修改的地方:在Intellij中点击“File” -->“Project Structure”,看一下“Project”、“Module”、"SDKs"栏目中Java版本是否与本地一致

第2个需要修改的地方:在“Settings”-->“Bulid, Execution,Deployment”->"Build Tools"->"Maven"中查看User setting file中的文件,是否有设置java版本

如果有下面这样的内容,需要将其修改为1.8

第3个需要修改的地方:在“Settings”-->“Bulid, Execution,Deployment”-->“Java Compiler”,Target bytecode version更改为1.8。

基本上改上面三个地方就可以避免上述的错误了

错误二:-source 1.6 中不支持 diamond 运算符

错误背景

上面的错误解决了,并不意味着就没有问题了。在执行maven打包时,会出现-source 1.6 中不支持 xxx 这样的错误

修改方法

修改pom.xml文件,查看是否存在着1.6版本

在我的pom.xml中确实存在1.6的配置,而且还配置了两个,只不过最后一个会生效,有三种解决方法:

一是删除后面两个plugin,保留第一个没有configuration的配置

二是删除第一、二个plugin,第三个plugin的source和target改成1.8

三是删除后两个plugin,同时在properties中指定版本

 <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

参考:

idea报java版本错误解决方法-CSDN博客

-source 1.7 中不支持 lambda 表达式(请使用 -source 8 或更高版本以启用 lambda 表达式)-CSDN博客"-source 1.5 中不支持方法引用,请使用 -source 8 或更高版本以启用方法引用"的解决方案 - 简书 (jianshu.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值