web-dev-qa-db-fra.com

Java - Les types Diamond ne sont pas pris en charge à ce niveau de langage

Je viens de commencer à travailler sur un projet Java, et j'ai téléchargé le code source depuis GitHub, en utilisant IntelliJ - Je n'ai jamais utilisé IntelliJ auparavant, mais on me dit que c'est beaucoup mieux IDE à utiliser qu'Eclipse (c'est ce que j'utilisais quand j'ai fait pour la dernière fois Java il y a environ quatre ans).

Lorsque j'essaie de créer la source localement sur mon ordinateur, après avoir extrait la dernière version de travail de GitHub, j'obtiens une erreur de compilation sur plusieurs lignes de code différentes - l'erreur indique:

Erreur: (27, 34) Java: l'opérateur diamant n'est pas pris en charge dans -source 1.5 (utilisez -source 7 ou supérieur pour activer l'opérateur diamant)

et les lignes où apparaissent ces erreurs de compilation sont des lignes comme:

return new ArrayList<>(0);

Si je sélectionne la ligne et que je Alt + Enter sur l'erreur, il affiche un message indiquant que je peux

"Réglez le niveau de langue sur 7 - Diamants, ARM, Multi-cache, etc."

Cependant, si je sélectionne cette option, rien ne se passe ...

Dans le pom.xml fichier, il y a le xml suivant:

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

Mais quand j'ai recherché cette erreur, je suis tombé sur la réponse à: le type Diamond n'est pas pris en charge à ce niveau de langue , qui a indiqué que je devrais utiliser maven1.7 ou supérieur - et il semble que le projet utilise déjà la version 1.8, donc je ne comprends pas pourquoi j'obtiens cette erreur de compilation ...

Quelqu'un a des suggestions?

11
Noble-Surfer

Ajoutez le code suivant dans votre fichier 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>
27
user8936069

En dessous de File->Project Structure (Ctrl + Alt + Shift + s) il y a une section appelée Project Settings et Project

Ici, vous pouvez définir le niveau de langue du projet. enter image description here

5
DrLime2k10