背景描述
在学习Mybatis时,用maven创建了一个项目,写到下面的这段代码时报错:
Map<String, Object> obj = new HashMap<>();
//报错信息:Diamond types are not supported at language level '5'
问题本质
当前项目所用的jdk版本不支持业务代码中的某种写法;
reason:<>这种
符号类型限定的用法是在language level 7
(JDK1.7)的时候才支持的。
解决思路
解法1:治标不治本
在设置中修改jdk版本,但是项目重新编译后就又会G,所以问题并没有从根本上解决
解法2:永绝后患
1. 插入代码段
在maven项目的pom.xml文件中引入下面的代码段
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<java.version>1.8</java.version>
</properties>
插入位置大概是这样的
<project>
<groupId>xxx</groupId>
<artifactId>xxx</artifactId>
<packaging>xxx</packaging>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<java.version>1.8</java.version>
</properties>
<modules>
...
</modules>
<dependencies>
...
</dependencies>
</project>
2. 重新导入maven
即可