Malgré la spécification de JDK 1.7 dans tous les parameters du projet (y compris dans File -> Project Structure -> Project :: Project SDK
), l’erreur suivante est IntelliJ 13
par IntelliJ 13
lors de la compilation d’un code Java 7 simple utilisant l’opérateur diamant:
java: diamond operator is not supported in -source 1.5 (use -source 7 or higher to enable diamond operator)
Y a-t-il un autre endroit dans la configuration où l’option -source 7
attendue devrait être activée?
Si rien de tout cela n’aide (mon cas), vous pouvez le définir dans votre fichier pom.xml, comme ceci:
1.7 1.7
Comme ce gars cool mentionné ici: https://stackoverflow.com/a/25888116/1643465
Veuillez vérifier les niveaux de langue de votre projet / module (structure du projet | projet; structure du projet | modules | nom du module | sources). Vous voudrez peut-être aussi consulter Paramètres | Compilateur | Compilateur Java | Version bytecode par module.
Définissez aussi ceci:
Fichier -> Structure du projet -> Modules :: Sources (à côté de Chemins et dépendances) et qui a une option “Niveau de langue” qui doit également être définie correctement.
[Pour IntelliJ IDEA 2016.2]
Je voudrais développer une partie de la réponse de Peter Gromov avec une capture d’écran actualisée. Plus précisément cette partie particulière:
Vous voudrez peut-être aussi consulter Paramètres | Compilateur | Compilateur Java | Version bytecode par module.
Je crois que (au moins en 2016.2): vérifier différents commits dans git
réinitialise à 1,5.
Alternativement, vous pouvez appliquer maven-comstackr-plugin avec la version java appropriée en ajoutant ceci à votre pom.xml:
org.apache.maven.plugins maven-comstackr-plugin 1.8 1.8
Fichier-> Structure du projet-> Paramètres du projet-> Projet-> Niveau de langue du projet
Fichier-> Structure du projet-> Paramètres du projet-> Modules-> Niveau de langue
Changer de niveau en utilisant le menu déroulant
J’ai essayé d’apporter des modifications à Intellij IDEA comme ci-dessous:
1.
File >> Settings >> Build, Execution, Deployment >> Comstackr >> Java Comstackr >> project bytecode version: 1.8 >> Per-module bytecode version: 1.8
2.
File >> Project Structure >> Project Settings >> Project >> SDK : 1.8, Project Language : 8 - Lambdas File >> Project Structure >> Project Settings >> Modules >> abc : Language level: 8 - Lambdas
mais rien n’a fonctionné, il a rendu les versions à java 1.5 dès que je l’ai enregistré.
Cependant, l’ajout des lignes ci-dessous à root (au niveau du projet) pom.xml m’a aidé à résoudre le problème ci-dessus: (les deux options fonctionnaient pour moi)
Option 1:
1.8 1.8
Option 2:
org.apache.maven.plugins maven-comstackr-plugin 1.8 1.8
Dans votre ligne de commande (terminal Unix) Allez dans le dossier racine de votre projet, et faites ceci
find . -type f -name '*.iml' -exec sed -i '' s/JDK_1_5/JDK_1_8/g {} +
Cela changera la propriété du niveau de langue dans tous les fichiers .iml de votre projet, de java 1.5 à java 1.8.
Tout d’abord, vous devez changer la “version du bytecode du projet” sous File > Settings
, Comstackr > Java Comstackr
Deuxièmement, effectuez une reconstruction complète.
J’ai le même problème mais avec une situation différente. Je peux comstackr sans aucun problème avec maven en ligne de commande ( mvn clean install
), mais dans Intellij j’ai toujours eu "java: diamond operator is not supported in -source 1.5"
malgré la configuration de java avec maven-comstackr-plugin 1.8 dans le pom.xml.
Il s’est avéré que j’ai un paramètre de référentiel à distance dans le fichier settings.xml de mon maven, dont dépend le projet, mais Intellij utilise son propre maven qui n’a pas le même paramètre avec mon maven local.
Ma solution consistait donc à modifier le paramètre Maven d’Intellij ( Settings -> Build, execution, Deployment -> Maven -> Maven home directory
) pour utiliser le maven local.
J’ai eu la propriété suivante travaillant pour moi dans IntelliJ 2017
1.8