Java- 钻石类型在此语言级别不受支持。

22

我刚开始在一个Java项目上工作,已从GitHub下载了源代码,并使用IntelliJ进行开发 - 我以前从未使用过IntelliJ,但有人告诉我它比Eclipse更好用(我上一次进行Java开发是大约四年前)。

当我尝试在计算机上本地构建源代码时,从GitHub中拉出最新的工作版本时,我会在几个不同的代码行上遇到编译错误 - 错误信息如下:

Error:(27, 34) java:钻石操作符在-source 1.5中不受支持(使用-source 7或更高版本启用钻石操作符)

这些编译错误出现的行,像这样:

return new ArrayList<>(0);

如果我选择这行代码并在错误处按下Alt+Enter,它会显示一条消息,指出我可以

"将语言级别设置为7-钻石、ARM、多级缓存等"

然而,如果我选择此选项,什么也不会发生...

pom.xml文件中,有以下XML:

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.5.1</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <version>${maven-source-plugin.version}</version>
    <executions>
        <execution>
            <id>attach-sources</id>
            <goals>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>

但是当我查找这个错误时,我在Diamond type are not supported at this language level找到了答案,它表明我应该使用maven 1.7或更高版本-而且看起来项目已经在使用1.8版本,所以我不明白为什么会出现编译错误...

有人有任何建议吗?


你有检查过IntelliJ IDEA的项目结构选项吗? - barbakini
我是IntelliJ的新手... 我应该在哪里检查? - Noble-Surfer
你是在IntelliJ还是在命令行中遇到了问题?尝试在命令行中运行mvn clean install并查看发生了什么。 - phanin
2个回答

49
将以下代码添加到您的pom.xml文件中。
<!-- maven-compiler-plugin -->
  <build>
    <plugins>
      <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>
        </configuration>
      </plugin>
    </plugins>
  </build>

10
文件->项目结构Ctrl + Alt + Shift + s)下,有一个名为项目设置(Project Settings)的部分和Project(项目)选项卡。
您可以在此处设置项目语言级别。 图片描述

2
谢谢您的回答。我刚刚尝试将其设置为7,点击“应用”,然后“确定”,然后再次尝试构建项目,但是在控制台中仍然出现相同的错误:Error:(27, 34) java: diamond operator is not supported in -source 1.5 (use -source 7 or higher to enable diamond operator) - Noble-Surfer
项目 SDK 是 1.8,如果有区别的话...? - Noble-Surfer
谢谢提供链接-我刚刚按照被接受的答案进行了操作,根据它所说,我的项目似乎已经正确设置了...我唯一没有做的就是重新导入所有Maven项目...我不确定如何显示“Maven项目”工具窗口? - Noble-Surfer
好的,我刚刚重新导入了,但是我仍然得到相同的编译错误...还有其他建议吗? - Noble-Surfer
查看您链接的问题中被接受的答案,第一张截图中,在“每个模块的字节码版本”下,截图显示了一个名为 testNgMavenExample 的东西...我在我的项目里没有这个- 我应该有吗?我尝试点击“+”以添加一个模块,但弹出的“选择模块”窗口显示“无内容可显示”....我需要下载一个模块来使用吗? - Noble-Surfer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接