Java 8 – Lambda Expressions

aujourd’hui Je vais vous dire quelque chose qui sera très utile. Nous allons parler d’une amélioration sur la manière d’utiliser les fonctions de cette langue bien-aimée: Java 8.
Vous ne serez pas quelques-uns que vous avez manqué des fonctions telles que des paramètres ou des rappels, ce qui, jusqu’à présent, nous avons dû utiliser, pour exemple, avec réflexion.

Deux nouveaux amis entrent en jeu:
Les interfaces fonctionnelles sont la base des expressions Lambda et sont définies comme toute interface qui a une seule interface méthode (une partie de tout autre objet s’étendant).

expressions Lambda ou des fonctions anonymes. Ils sont un moyen d’exprimer une fonction sans avoir à le déclarer de manière habituelle, mais avec une notation plus similaire aux mathématiques.

comme ceci:

<< p style = "text-align: justifier;" >

, INTEGER B) {
Retour A + B;
} < / P >

pourrait être exprimé comme:

(A, B) – > A + B

assez plus simple, non?

Maintenant, je propose un cas pratique d’un projet que j’ai fait ces derniers temps.
Les méthodes dans lesquelles vous devez Construire une requête basée sur un objet contenant les filtres à appliquer, la norme suivante est très courante:

<

<<41d0dff7cc ">

p style = » Text- Aligner: justifier; « > Query annulé (filtre filtre) {

if (filter.getname ()! = null) {question .et (« Name = » + filtre.getname ());
}
if (filter.getemail ()! = Null) {
Query.et (« email = » + filtre.getemail ()) ;
}

} < / p >

qui pourrait être refoulé à quelque chose comme ceci:

<

<41d0dff7cc ">

p style = » text-align: justifier;  » > public < t

t

« 9a8cd8c5b6″>

vide ifnotnull (article T, consommateur < t > consommateur) {
if (item! = Null) {
consommateur.accept (article);
>} / p >

<41d0dff7cc ">

p style = » text-aligner : justifier; « > Query annulé (filtre filtre) {
ifnotnull (filtre.getName (), nom – > .Et (‘nom =’ + nom);
ifnotnull (filter.getemail (), email – > Query.et (‘Email =’ + Email);

} < / p

Je ne peux pas terminer mon message aujourd’hui sans offrir le résumé de certaines des interfaces fonctionnelles qu’il apporte par défaut Java8, sauvegardez-vous plus qu’une occasion:


Runnable (vide – > vide) : Exécutez une action sans arguments et ne renvoie rien.
fournisseur < t

t

« 9a8cd8c5b6″>

(vide – > t): exécute une action qui renvoie une valeur de type T.
consommateur < t

t <9a8cd8c5b6">

( T – > void): Recevez un paramètre Type T-Type et ne renvoyez rien.
Biconsumer < T, U > (t, u – > vide): Recevez deux paramètres de type T et U et ne retournez rien. Fonction t, r > (t – > r): Recevez un paramètre Type T-Type Évoluer une valeur de type R
Bifunction T, U, R > (T, U – > r): reçoit deux paramètres T et U de type T et U et renvoie une valeur R.
Unyopérator < T > (T – > T): Recevez un paramètre Type T-Type et retourne une valeur du même type.
Binaryopérateur < T > (t, t – > t): reçoit deux paramètres de type T et renvoie une valeur du même type. (L’exemple de somme avant illustrée entrerait dans cette catégorie).
prêche < t

t

« 9a8cd8c5b6″>

(T – > booléen): Évaluez le paramètre Type T-Type sur TRUE / FAUX.


Leave a Comment

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *