Java “les expressions lambda sont pas pris en charge à ce niveau de langue”
J'ai été le tester quelques nouvelles fonctionnalités de Java 8 et copié l'exemple dans mon IDE (Eclipse à l'origine, puis IntelliJ), comme le montre ici
Eclipse offert aucun soutien d'aucune sorte pour les expressions lambda, et IntelliJ gardé de signaler une erreur
Les expressions Lambda sont pas pris en charge à ce niveau de langue
Je voudrais savoir si c'est un problème avec mon installation, le code, ou de soutien.
- C'est un IDE problème. Vous devez changer votre compilateur de la conformité.
- Dans l'IDÉE, sélectionnez Fichier -> Projet de la structure; vous aurez la possibilité de changer le niveau de langue
- Sur DONC, ne pas annoter le titre avec "Résolu", marque de la meilleure des réponses comme "Accepté" en cliquant sur la coche. Qui récompense le répondeur et montre que la question a une réponse qui résout le problème. Si pas de réponse donne le droit de résolution, vous êtes libre de poster une auto-réponse, puis marquer accepté (après une période d'attente).
- double possible de Comment puis-je utiliser Java 8 fonctions dans Eclipse Luna?
- J'ai annoté comme ça parce qu'ils n'ont pas de poste comme une réponse, mais comme un commentaire.
- Eh bien, c'est de l'Ide, mais merci pour le soutien pour Eclipse @SvetlinZarev
- utilisez-vous une sorte de construire des outils? (maven, etc.) - la configuration de votre choix peut être différent
- "Eclipse offert aucun soutien d'aucune sorte pour les expressions lambda"- C'est manifestement incorrect, et était incorrecte lorsque la question a été posée; voir ma réponse et d'autres personnes que vous dire comment l'obtenir.
Vous devez vous connecter pour publier un commentaire.
Dans IntelliJ IDEA:
Dans
File Menu
→Project Structure
→Project
, changementProject Language Level
à8.0 - Lambdas, type annotations etc.
Pour Android 3.0+ Go
File
→Project Structure
→Module
→app
et Dans l'Onglet Propriétés de définirSource Compatibility
etTarget Compatibility
à1.8 (Java 8)
Capture d'écran:
File Menu → Project Structure → Modules
, mais par défaut, il sera le même que le Projet de niveau de langue.android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
File
->Project Structure
->Module you want to support lambdas
et set Compatibilité de la Source et Cible de Compatibilité pour 1.8Vous devez modifier le code source de Niveau de Langue aussi sur l'onglet Source (Modules de la partie).
Cette solution fonctionne dans Android Studio 3.0 ou version ultérieure.
De changer à la fois de
Source Compatibility
etTarget Compatibility
à1.8
Vous pouvez également le configurer directement dans le construire.gradle fichier
Pour intellij 13,
Il suffit de modifier le Projet de niveau de langue, à
8.0
avec navigation suivantes.Module lang niveau
J'ai aussi eu à mettre à jour
Modules lang level
quand il n'y a pas de plugin maven pourjava compiler
.Mais ce
Module lang level
sera automatiquement corrigé si il y a déjà unmaven plugin
pour elle,Après les changements tout semble bon
Dans Android studio canary build(3.+), vous pouvez effectuer les opérations suivantes:
Fichier -> Structure de Projet -> Regarder dans les Modules de la Section, il y a des noms de modules de votre classe. Cliquez sur le module dans lequel vous voulez mettre à jour java pour la version 1.8. -> Modifier "Compatibilité de la Source" et "Cible Compatibilité" de 1.8 à partir de 1,7 ou moins. Ne pas changer quoi que ce soit d'autre. -> Cliquez sur Appliquer
maintenant gradle re-sync et votre message sera supprimé.
Juste ajouter
compileOptions
dans la construction.gradle vôtre app:Pour les derniers utilisateurs à l'aide d'Android studio 3.0.1 ou au-dessus. Cliquez simplement sur Alt + Entrée et de mise à niveau de votre niveau de langue à 8,0 - les Lambdas, les annotations de type etc.
Si vous obtenez Pas pris en charge à la Langue 5, vérifiez ceci: (
Pour moi, c'était dans le Modules section)
7.0 ne prend pas en charge les expressions lambda. Juste ajouter ceci à votre application gradle pour changer de langue de niveau de 8.0:
En fait, Eclipse pour Java 8 est disponible: voir ici et ici.
Pour compiler avec Java 8 (lambdas etc) dans IntelliJ IDEA 15;
CTRL + ALT + SHIFT + S
ou un Fichier /de la Structure de ProjetOuvrir l'onglet Projet
Projet SDK compatible java version (1.8)
Projet de niveau de langue à 8
Ouvrez l'onglet Modules
Définir le niveau de Langue à 8, cliquez sur OK
CTRL + ALT + S
ou Fichier /ParamètresConstruire, L'Exécution, Le Déploiement /Compilateur /Compilateur Java
Changer de Cible du bytecode à la version 1.8, cliquez sur OK
À l'aide de:
IntelliJ IDEA 2017.1.4 Build #UI-171.4694.23
Changer le niveau de langue via les Paramètres du Projet /onglet Projet n'a rien fait. Au lieu de frapper Alt + Entrée et sélectionner "Définir le niveau de langue à 8 Lambdas, les annotations de type etc...." et il est résolu automatiquement.
De Stephen C souligné, Eclipse Kepler (4.3) a Java 8 prise en charge lorsque le patch est installé (instructions d'installation ici)
Une fois installé, vous aurez besoin de dire à vos projets pour l'utilisation de java 8. Tout d'abord ajouter le JDK pour eclipse:
Alors dites-le projet d'utiliser le JDK 1.8:
Découvrez ci-dessous les paramètres:
Fichier->Structure de Projet->Onglet Projet.
Fichier->Structure de Projet->Modules.
Fichier->Paramètres(ou d'Autres Paramètres->Préférence pour les nouveaux projets dans les plus récents Idée de la version)
Problème vous risquez de tomber dans l'un quelconque de la catégorie définie ci-dessus.
Le même projet (
Android Studio 3.3.2
,gradle-4.10.1-all.zip
,compileSdkVersion 28
,buildToolsVersion '28.0.3'
)fonctionne très bien sur le nouveau fast machine Windows et de souligner
Java 8
trucs en couleur rouge sur la vieux Ubuntu 18.04 ordinateur portable (cependant, le projet est en train de compiler sans erreurs sur Ubuntu).Les deux seules choses que j'ai changé pour le forcer à s'arrêter en soulignant en rouge ont été à l'exclusion de
incremental true
etdexOptions
dans le
app
niveaubuild.gradle
.Dans intellij 14, les paramètres suivants ont travaillé pour moi.
Intellij14 Paramètres
Même après l'application ci-dessus défini les paramètres spécifiques d'un projet sur l'Ide comme Eclipse, il était toujours à la peine pour moi !
ce qui a fonctionné pour moi a été l'ajout de plugin maven pour la source et la cible de 1,8 réglage en POM XML:
Cause Possible n ° 1 (de même que pour les 3 premières réponses à cette question): Structure de Projet, les Paramètres de
Fichier > Structure de Projet > Sous Paramètres du Projet, allez dans Project > set Projet SDK à 1,8 (avec la version de 65 ans ou plus, la dernière est le 112) et le jeu de Projet de Niveau de Langue, à 8.
Fichier > Structure de Projet > en Vertu de la Plate-forme de Paramètres, allez dans Project > veiller à ce que votre JDK maison chemin est fixé à 1,8 (avec la version de 65 ans ou plus, la dernière est 112).
Si le ci-dessus ne fonctionne pas, vérifiez le cible bytecode version de votre compilateur et de passer à la Cause Possible n ° 2.
Cause Possible N ° 2: Compilateur
Meilleurs voeux 🙂
Pour moi aucune des solutions prévues travaillé.
Cela devrait être votre dernier recours:
-> Ouvrir .iml fichier de votre projet de changement de la LANGUAGE_LEVEL à JDK_1_8 ou quelle que soit la version que vous souhaitez.
-> Si cela ne vous aide pas, vous devriez grep "JDK" dans votre répertoire racine du projet et de trouver le fichier qui contient la version de réglage et réglez votre version préférée.
Ctrl + Alt + Maj + S, puis de projet, sélectionnez le niveau de langue 1.8, pour en savoir plus sur les Expressions Lambda ici
D'avoir le soutien de Ecplise pour les expressions lambda :
D'abord vérifier la version de JDK que vous utilisez, il devrait plus que de 1,8.
Si c'est pour faire les étapes ci-dessous.
Changement de niveau de Langue, de Projet et de modules dans Intellij.
Projet
ce les réponses ne fonctionne pas pour la nouvelle mise à jour de l'ide... pour de nouvelles intelliJ..
Aller à --> fichier --> Structure de Projet --> Global Libraries ==> set de JDK 1.8 ou version supérieure.
aussi Fichier -- > la Structure du projet ---> projets ===> set "projet de manuel du langage" à 8
aussi Fichier -- > la Structure du projet ---> projet sdk ==> 1.8
Ceci doit permettre une expression lambda pour votre projet.