Java - 此语言级别不支持 Diamond 类型

Posted

技术标签:

【中文标题】Java - 此语言级别不支持 Diamond 类型【英文标题】:Java- Diamond types are not supported at this language level 【发布时间】:2017-10-15 18:00:03 【问题描述】:

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

当我尝试在我的计算机上本地构建源代码时,从 GitHub 提取了最新的工作版本,我在几行不同的代码行上遇到编译错误 - 错误显示:

Error:(27, 34) java: diamond operator is not supported in -source 1.5 (use -source 7 or later to enable diamond operator)

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

return new ArrayList<>(0);

如果我选择该行,并对错误执行Alt + Enter,它会显示一条消息,说明我可以

“将语言级别设置为 7 - Diamonds、ARM、Multi-cache 等”

但是,如果我选择此选项,则不会发生任何事情...

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 找到了答案,这表明我应该使用 maven1.7 或更高版本 - 并且该项目似乎已经在使用 1.8 版本,所以我没有'不明白为什么我得到这个编译错误......

大家有什么建议吗?

【问题讨论】:

你检查过 itellij idea 的项目结构选项吗? 我是 IntelliJ 的新手...如何/在哪里检查? 您是在 IntelliJ 中还是在命令行中遇到问题?尝试命令行运行 mvn clean install 看看会发生什么。 【参考方案1】:

将以下代码添加到您的 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>

【讨论】:

【参考方案2】:

File-&gt;Project Structure (Ctrl + Alt + Shift + s) 下有一个名为@987654324 的部分@ 和 Project

您可以在此处设置项目语言级别。

【讨论】:

感谢您的回答。我只是尝试将其设置为 7,单击“应用”,然后单击“确定”,然后再次尝试构建项目,但在控制台中出现相同的错误:Error:(27, 34) java: diamond operator is not supported in -source 1.5 (use -source 7 or higher to enable diamond operator) Project SDK 是 1.8,以防万一……? 感谢您的链接-我刚刚完成了接受的答案,我的项目似乎都按照它所说的正确设置了......我唯一没有做过的事情是重新导入所有 Maven 项目...我不确定如何显示 Maven Projects 工具窗口? 好的,我刚刚完成了重新导入,但我仍然遇到相同的编译错误...还有其他建议吗? 查看您链接到的问题的已接受答案,在第一个屏幕截图中,在“每模块字节码版本”下,屏幕截图显示了一些名为 testNgMavenExample... 我没有我的里面有什么——我应该有吗?我尝试单击“+”添加模块,但弹出的“选择模块”窗口显示“没有可显示的内容”......我需要下载一个模块才能使用吗?

以上是关于Java - 此语言级别不支持 Diamond 类型的主要内容,如果未能解决你的问题,请参考以下文章

java-source1.5中不支持diamond

尝试使用此语言级别不支持的资源

此语言级别不支持 intellij 功能 (...)。我无法编译

此语言级别不支持 try-with-resources - Android

IDEA java:-source 1.5中不支持diamond运算符,请使用-source7或更高版本以启动diamond运算符

解决:Java source1.5不支持diamond运算符,请使用source 7或更高版本以启用diamond运算符