Les lambdas sur JAVA

Bonjour,

Configuration: Windows / Chrome 78.0.3904.108


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

2 réponses

  1. Modérateur
    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 ?
    1. 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)
    2. Modérateur
      @boookerIci 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;
      }
  2. 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 ?
    1. Modérateur
      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
      }