J'essaie d'exécuter ce script d'entraînement à partir du tutoriels standard Oracle Java .
Cela semble être une erreur courante et j'ai utilisé les ressources SO pour tenter de résoudre ce problème. J'ai essayé de nettoyer le projet, d'actualiser le projet, de changer de poste de travail et de revenir en arrière, de retirer et de rajouter le JRE7.
Je ne sais pas quoi faire d'autre.
import Java.util.List;
import Java.util.function.Consumer; -----> cannot be resolved ERROR
import Java.util.function.Function; -----> cannot be resolved ERROR
import Java.util.Comparator;
import Java.util.function.Predicate; -----> cannot be resolved ERROR
import Java.lang.Iterable;
import Java.time.chrono.IsoChronology; -----> cannot be resolved ERROR
public class LambdaExpressions_RosterTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
Par le Java.util.function
Javadoc,
Since: 1.8
Mettez-vous à niveau vers Java 8 ou essayez de trouver une version plus ancienne du didacticiel.
Je suis nouveau à ça. Comment pouvez-vous dire ce que vous exécutez? J'utilise Eclipse
Pour déterminer votre version Java actuelle dans Eclipse, accédez à
Help -> About Eclipse -> Installation Details (Button in
lower Left) -> Configuration pane
Recherchez la ligne Java.specification.version
- sur ma machine qui est
Java.specification.version=1.8
Ou la ligne Java.runtime.version
- sur ma machine qui est
Java.runtime.version=1.8.0_11-b12
j'ai résolu ce problème en essayant la solution suivante
Projet> Propriétés> Chemin de construction Java
Sélectionnez l'onglet Bibliothèques
Sélectionner la bibliothèque système JRE
Cliquez sur le bouton Modifier
Choisir un autre JRE (jre1.8.0_20)
Cliquez sur le bouton Terminer
Les expressions Lambda ont été ajoutées récemment à Java 8. Elles ne sont pas disponibles pour JRE7 . Essayez de mettre à niveau le JRE de votre projet Eclipse vers la version 8 (fenêtre -> préférences-> Java-> compilateur).
Je me suis heurté à cela en essayant d'utiliser Java 9 avec Eclipse Oxygen. Eclipse a affirmé que j'utilisais moins de Java 1.8 et m'a demandé si je voulais utiliser 1.8. Dire oui a résolu le problème, mais a ensuite conduit à ce message d'erreur.
Je suis allé dans Window => Préférences => Java => Compilateur et j'ai vu que cela avait été changé en 1.8. Je l'ai donc ramené à 9 et tout semble fonctionner maintenant.
le même problème me vient, je modifie le fichier Eclipse.ini et .__ a fait -Dosgi.requiredJavaVersion = 1.8 au lieu de -Dosgi.requiredJavaVersion = 1.6 .__ et mon problème a été résolu.
Couru dans ce problème lorsque la version que j'utilisais dans les propriétés ci-dessous était <1.8. La mise à jour de mon POM avec une version> 1.8 a résolu mon problème.
<properties>
<maven.compiler.source>1.9</maven.compiler.source>
<maven.compiler.target>1.9</maven.compiler.target>
</properties>
J'avais quelque chose de similaire avec Apache Camel: La fonction suivante ne fonctionnait plus
String headerKey = exchange.getIn().getHeader("headerKey",String.class);
à cause du message d'erreur:
The type Java.util.function.Supplier cannot be resolved. It is indirectly referenced from required .class files
Pour résoudre le problème, je change le casting et cela a fonctionné après:
String headerKey = (String) exchange.getIn().getHeader("headerKey");
peut-être que cela vous aide ou aide quelqu'un d'autre
Pour vous faire une idée d’IntelliJ, vous devez aller dans Menu-> Structure du projet -> Module où vous verrez l’onglet Source. changez-le à plus de 8.
-yash