web-dev-qa-db-fra.com

L'erreur "import Java.util.function ne peut pas être résolue"

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

    }

    }
11
StacyM

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
14
Elliott Frisch

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

10
SoftwareDev

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

3
Tapan Pandya

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.

0
cowang

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.

0
Salahuddin Quazi

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

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

0
IVIike

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

0
Yash Jagdale