Vidéo: TUTO Android : Invocation d'un Service Web Rest/JSON 2024
Parfois, si vous ouvrez du code dans l'éditeur Android Studio et passez la souris sur certains mots, vous obtenez une surprise intéressante. Android Studio vous indique que vous pouvez remplacer la classe interne anonyme par une expression lambda.
Vous pouvez créer une expression lambda.D'accord. Qu'est-ce qu'une expression lambda? Pour commencer, lambda est une lettre dans l'alphabet grec, et le terme expression lambda provient d'articles écrits dans les années 1930 par le mathématicien Alonzo Church.
En 2013, Oracle a publié Java 8, ajoutant des expressions lambda au langage Java. Et en 2016, Google a rendu les fonctionnalités de Java 8 disponibles pour les développeurs Android.
Qu'est-ce qu'une expression lambda exactement? Une expression lambda est une façon concise de déclarer une interface qui ne contient qu'une seule méthode. Par exemple, un
OnClickListener
anonyme ne peut avoir qu'une seule méthode, à savoir la méthode
onClick
. Vous pouvez donc remplacer ce
OnClickListener
anonyme par une expression lambda.
Si vous répondez au message en appuyant sur Alt + Entrée, Android Studio vous propose une option Remplacer par Lambda. Si vous acceptez cette option, Android Studio transforme votre code en ce genre de choses.
package com. allmycode. a11_05;
importer Android. os. Paquet;
importer Android. soutien. v7. app. AppCompatActivity;
importer Android. widget. Bouton;
importer Android. widget. Affichage;
public class MainActivity extends AppCompatActivity {
Bouton bouton;
TextView textView;
@Override
void protégé onCreate (Bundle savedInstanceState) {
super. onCreate (savedInstanceState);
setContentView (disposition R., activité_main);
touche = (Bouton) findViewById (bouton R.id.);
. setOnClickListener (view -> textView.setText (R. chaîne. you_clicked) );
textView = (TextView) findViewById (id de R. textView);
}
}
Ce code utilise une expression lambda. L'image illustre la transition d'une classe qui implémente une interface à une méthode à une expression lambda.
Transformer une interface en une expression lambda.Notez le rôle léger du mot
voir
. Lorsque vous déclarez une méthode
onClick
, vous attribuez à la méthode un paramètre de type
View
même si les instructions de la méthode n'utilisent pas ce paramètre. De la même manière, lorsque vous créez une expression lambda pour une méthode
onClick
, vous préfixez le symbole
->
avec un nom de paramètre, même si vous n'utilisez pas ce nom de paramètre la gauche du symbole
->
.
Pour utiliser des expressions lambda, vous devez satisfaire à certaines exigences. Par exemple, vous devez compiler votre code avec Java 8 ou supérieur. Votre version Android Studio doit être 2. 1 ou plus. Et la construction
de votre projet. Le fichier gradle
doit inclure le code suivant:
android {
…
defaultConfig {
…
jackOptions {
activé vrai
}
}
…
}
Une expression lambda peut avoir plus d'un paramètre à gauche du symbole
->
. Si c'est le cas, vous devez placer tous les paramètres entre parenthèses et séparer les paramètres les uns des autres avec des virgules. Par exemple, l'expression
(prix1, prix2) -> prix1 + prix2
est une expression lambda valide.
Si vous êtes à l'aise avec les expressions lambda, vous pouvez rendre votre code beaucoup plus lisible. Ce qui a commencé comme une dizaine de lignes de code peut facilement devenir une partie d'une ligne.