Error:(119, 54) java: -source 1.5 中不支持 diamond 运算符 (请使用 -source 7

前言

近期我修改了idea的maven配置,没想到过去的项目结果报错了。
摸索了半天后解决了,特此记录。

问题

Error:(119, 54) java: -source 1.5 中不支持 diamond 运算符 (请使用 -source 7

如下图


image.png

解决

问题的原因是: maven默认的jdk是1.5。版本较低,不支持java的一些新特性。

例如这里的 diamond(钻石)运算符

Diamond Operator
类型判断是一个人特殊的烦恼,下面的代码:
Map<String,List<String>> anagrams = new HashMap<String,List<String>>();
通过类型推断后变成:
Map<String,List<String>> anagrams = new HashMap<>();
注:这个<>被叫做diamond(钻石)运算符,Java 7后这个运算符从引用的声明中推断类型。

知道问题原因则解决方法有2种选择。

  • 全局修改。修改maven配置。

<profile>
 
<id>jdk-1.8</id>
 
<activation>
 
<activeByDefault>true</activeByDefault>
 
<jdk>1.8</jdk>
 
</activation>
 
<properties>
 
<maven.compiler.source>1.8</maven.compiler.source>
 
<maven.compiler.target>1.8</maven.compiler.target>
 
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
 
</properties>
 
</profile>
  • 单独某个项目修改
    在maven项目的pom中加入
 <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容