Les lambdas sur JAVA

- - Dernière réponse : KX
Messages postés
16087
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
3 décembre 2019
- 25 nov. 2019 à 08:34
Bonjour,

Configuration: Windows / Chrome 78.0.3904.108


Je n'arrive pas a utiliser les lambdas sur eclipse, merci de votre aide
Afficher la suite 

2 réponses

Messages postés
16087
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
3 décembre 2019
2462
0
Merci
Bonjour,

C'est vague comme problème.

Quelle version d'Eclipse utilises tu ?
Quelle version de Java est configurée ?
Quel code essayes-tu de faire fonctionner ?
Quel erreur est-ce que tu obtiens ?
merci pour la reponse :
la version java est 2019-09
JAVA 11
Le code :


public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub
()->1337;

}

}
l'erreur
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Syntax error, insert "AssignmentOperator Expression" to complete Expression

at Main.main(Main.java:6)
KX
Messages postés
16087
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
3 décembre 2019
2462 > boooker -
Ici le problème c'est le code.

En Java tu ne peux pas écrire directement ceci :
public static void main(String[] args) {
   1337; // Syntax error, insert "AssignmentOperator Expression" to complete Expression
}

Il faudrait que tu assignes la valeur à une variable, par exemple :
public static void main(String[] args) {
   int n = 1337;
}

C'est le même principe avec les lambdas, tu ne peux pas écrire directement :
public static void main(String[] args) {
   () -> 1337; // Syntax error, insert "AssignmentOperator Expression" to complete Expression
}

Il faut que tu assignes la méthode à une référence, par exemple :
public static void main(String[] args) {
    IntSupplier getN = () -> 1337; // import java.util.function.IntSupplier;
}
Commenter la réponse de KX
0
Merci
merci pour votre reponse, ca peut paraitre bete , mais dans ce cas l'eclipse ne retourne aucune valeur ,sur la console. alors comment afficher le resultat ?
KX
Messages postés
16087
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
3 décembre 2019
2462 -
En effet, le programme n'affiche rien, de même qu'il n'afficherait rien avec juste
int n = 1337;

Pour qu'il y ait un affichage il faut qu'il y ait un
System.out.println
dans ton code...

public static void main(String[] args) {
    IntSupplier getN = () -> 1337; // import java.util.function.IntSupplier;
    int n = getN.getAsInt();
    System.out.println(n); // 1337
}
Commenter la réponse de boooker