Voici un résumé de la façon d'abréger les expressions lambda. Il sera demandé dans des examens tels que Java Silver, j'espère donc que cela aidera les candidats. Enfin, je vais résumer comment se souvenir.
Si vous ne comprenez pas la formule lambda en premier lieu, veuillez cliquer ici. Comprendre les expressions Lambda Java 8
Tout d'abord, la forme de base du type lambda.
Forme basique
Predicate<String> javaChecker = (String s) -> { return s.equals("Java"); };
Voyons ce qui peut être omis d'ici.
Tout d'abord, le type d'argument est facultatif.
Predicate<String> javaChecker = (s) -> { return s.equals("Java"); };
Cependant, s'il y a plusieurs arguments, il n'est pas possible d'en omettre un seul.
//Erreur de compilation
BiFunction<Integer, Integer, Integer> adder = (a, Integer b) -> { return a + b; };
L'argument () peut également être omis.
Predicate<String> javaChecker = s -> { return s.equals("Java"); };
Cependant, il y a deux conditions. Premièrement, si vous spécifiez un type, il ne peut pas être omis.
//Erreur de compilation
Predicate<String> javaChecker = String s -> { return s.equals("Java"); };
Deuxièmement, il ne peut pas être omis même s'il y a plusieurs arguments.
//Erreur de compilation
BiFunction<Integer, Integer, Integer> adder = a, b -> { return a + b; };
Je pense qu'il est bon de se rappeler que () ne peut être omis que lorsque l'argument est un mot.
La méthode {} peut également être omise.
Consumer<String> buyer = goods -> System.out.println(goods + "j'ai acheté");
Il y a aussi des conditions ici. Premièrement, il ne peut pas être omis s'il y a deux phrases ou plus.
//Erreur de compilation
Consumer<String> buyer = goods -> String message = "JE," + goods;
System.out.println(message + "j'ai acheté");
Ensuite, écrivez return et il ne peut pas être omis.
//Erreur de compilation
Predicate<String> javaChecker = s -> return s.equals("Java");
Cependant, si vous omettez return, il peut être exécuté normalement.
Predicate<String> javaChecker = s -> s.equals("Java");
Rappelez-vous que {} ne peut être omis que lorsque le processus est une instruction, et s'il y a une valeur de retour, le retour peut être omis en tant qu'ensemble.
return Comme mentionné ci-dessus, return peut être omis, mais il ne peut pas être omis en laissant le {} de la méthode.
//Erreur de compilation
Predicate<String> javaChecker = s ->{ s.equals("Java"); };
Même si vous souhaitez omettre return, ce sera un ensemble avec omission {}.
Le résumé est le suivant.
Partie omise | conditions |
---|---|
Type d'argument | 全Type d'argumentを省略すること |
De l'argument() | Seulement pour un mot |
De la méthode{} | Seulement pour une déclaration S'il y a une valeur de retour, définie avec omission de retour |
return | De la méthode{}Omission et set |
Recommended Posts