当前位置: 首页 > 知识库问答 >
问题:

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

储仲渊
2023-03-14

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

当我试图在计算机上本地构建源代码时,从GitHub中提取了最新的工作版本,我在几行不同的代码上得到了一个编译错误--错误如下:

错误:(27,34)Java:-source 1.5不支持菱形运算符(使用-source 7或更高版本启用菱形运算符)

出现这些编译错误的行如下所示:

return new ArrayList<>(0);

如果我选择了该行,并对错误执行alt+enter,它将显示一条消息,说明我可以

<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>

但是当我查找这个错误时,我发现答案是:在这个语言级别上不支持菱形类型,这表明我应该使用Maven1.7或更高的版本--而且这个项目似乎已经使用了1.8版本,所以我不明白为什么我会得到这个编译错误...

有人有什么建议吗?

共有1个答案

邹嘉石
2023-03-14

将以下代码添加到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>
 类似资料:
  • 我正在测试Java8的一些新特性,并将该示例复制到我的IDE(最初是Eclipse,然后是IntelliJ),如下所示 Eclipse不支持lambda表达式,IntelliJ不断报告错误

  • 问题内容: 我有一个使用Spark的Java类。我需要从JavaRDD过滤出标头。这就是我要这样做的方式。 但是,此代码无法编译。IntelliJ IDE表示“此语言级别不支持Lambda表达式”。 问题答案: 您可以在Java 7上使用lambda,但涉及到一点点- 您必须使用Retrolambda之类的东西。 同样,您也可以在没有lambda的情况下执行相同的操作。Lambda可以通过匿名类轻

  • 我有一个使用火花的Java类。我需要从JavaRDD过滤掉标头。这就是我想做的。 但是,这段代码

  • 我使用的是IntelliJ IDEA Ultimate 2016.2.1,将项目SDK设置为我的1.8版本,项目语言级别设置为8,模块SDK设置为我的1.8版本,JDK主页路径设置为/library/java/javavirtualmachines/jdk1.8.0_91.JDK/contents/home。 我已重新启动IDE。 编辑: 在Intellij的系统之外用termianl运行grad

  • IntelliJ向我显示了这个错误 我刚做了我的新电脑,我的java东西都不工作...我第一次尝试的时候,我的普通Intellij正在工作,但是我的Android Studio不会安装,因为它找不到jdk的路径。这是我问的问题。因为那不起作用,我不得不多次重新安装java,现在我的IntelliJ不起作用了。以下是错误的图片(我得到一个错误,告诉我每个循环在此语言级别不支持)。 我试图在我的D:驱

  • 问题内容: 我正在尝试使用Diamond运算符,但是却收到以下消息: -source 1.5中不支持Diamond运算符(使用-source 7或更高版本来启用Diamond运算符) 它可以在Android的netbeans中修复吗? 问题答案: Android需要Java来源合规性5.0或6.0(Java5 / 6)。开箱即用不支持Java7。这些文章描述了有关如何使用某些Java7功能的技巧: