拿着实验材料做实验时使用了override关键字,用junit测试时发现报错@Override is not allowed when implementing interface method,当时心里就一万匹草泥马奔过,Override都能给我报错?!索性上网查找资料,发现原来是由于idea默认编译版本过低导致的问题
发现问题
进入项目设置中的modules查看项目语言,发现Sources中使用的Java版本是5,而依赖中用的SDK是14,再看编译器compiler的版本发现竟然是1.4!简直是牛头不对马嘴!



解决方法
这种情况是由于我使用了maven对项目进行build,而maven默认使用的编译版本就是1.4,所以按理说我们把以上栏目都改为14即可。
但是修改完后我再运行程序发现还是报一样的错,再检查一便发现编译器版本又变成了1.4
我就纳了闷了,这怎么自己又给我改了呢。上网搜索才发现,我们需要再maven的pom.xml文件中加入一下内容:
<properties>
<maven.compiler.source>14</maven.compiler.source>
<maven.compiler.target>14</maven.compiler.target>
</properties>
这样就能让maven默认使用14版本的source和compiler了。
改完保存,发现项目可以正常运行。
文章讲述了在使用Java编程时遇到的一个问题,即在使用@Override关键字时,junit测试报错。问题根源在于IDEA项目的语言版本设置不一致,源代码的Java版本被设定为5,而SDK和编译器版本为14。通过修改IDEA项目设置和maven的pom.xml文件,确保maven使用14版本的source和compiler,最终解决了问题,使得项目能正常运行。
5146

被折叠的 条评论
为什么被折叠?



