1. ホーム
  2. java

[解決済み] Java- ダイアモンド型はこの言語レベルではサポートされていません。

2022-02-28 16:21:46

質問

IntelliJを使ったことはありませんが、Eclipse(私が最後にJavaの開発をしたとき、約4年前に使っていたもの)よりもはるかに優れたIDEであると聞いています。

GitHub から最新の作業バージョンを取得し、私のコンピュータでソースをビルドしようとすると、コードのいくつかの異なる行でコンパイルエラーが発生します - エラーには次のように書かれています。

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

で、このコンパイルエラーが出る行は、以下のような行です。

return new ArrayList<>(0);

行を選択し、次のようにすると Alt + Enter というメッセージが表示されます。

<ブロッククオート

言語レベルを7-Diamonds, ARM, Multi-cache, etc"に設定してください。

しかし、このオプションを選択しても何も起こりません...。

において 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>

しかし、このエラーを調べると、次のような答えに行き着きました。 この言語レベルではダイヤモンド型はサポートされていません で、maven1.7以上を使うべきと書いてありましたが、このプロジェクトはすでにバージョン1.8を使っているようで、なぜこのコンパイルエラーが出るのか理解できません.........。

どなたかご意見をお聞かせください。

解決方法は?

以下のコードを 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>