Comment assigner un lambda à une variable dans Java 8?



0 Answers

Comme le souligne Boris The Spider, le problème spécifique que vous avez est celui des génériques. Selon le contexte, l'ajout d'un {} bloc explicite autour du lambda aidera à ajouter de la clarté et pourra être requis.

Avec cela, vous obtiendrez quelque chose comme:

BiFunction<String, Integer, Integer> x = (String k, Integer v) -> {v == null ? 42 : v + 41};

Ce serait très utile pour les futurs lecteurs qui ont le même problème si vous avez posté vos erreurs de syntaxe afin qu'ils puissent être indexés.

Ce lien a quelques exemples supplémentaires qui pourraient aider.

Question

Juste en jouant avec les nouvelles fonctionnalités lambda et fonctionnelles de Java 8 et je ne sais pas trop comment faire.

Par exemple, ce qui suit est valide:

    Map<String, Integer> map = new HashMap<>();
    map.put("A", 1);
    map.put("B", 2);
    map.put("C", 3);
    map.compute("A", (k, v) -> v == null ? 42 : v + 41));

mais ce qui suit me donne des erreurs de syntaxe:

    BiFunction x = (k, v) -> v == null ? 42 : v + 41;
    map.compute("A", x);

Des idées?




Related