Signification de lambda () - > {} en Java
Je regarde la réponse de débordement de pile suivante: Comment changer le Printemps @Prévue fixedDelay au moment de l'exécution
Et dans le code il y a la ligne suivante:
schedulerFuture = taskScheduler.schedule(() -> { }, this);
Je voudrais savoir ce que le lambda () -> {}
signifie que dans ce code. J'ai besoin de l'écrire sans utiliser lambdas.
4 réponses
, Sa Runnable
avec un vide run
définition. La représentation anonyme de cette classe serait:
new Runnable() {
@Override public void run() {
// could have done something here
}
}
Lamda expression est une fonction anonyme qui vous permet de passer des méthodes comme arguments ou simplement, un mécanisme qui vous aide à supprimer beaucoup de code standard. Ils n'ont aucun modificateur d'accès (privé, public ou protégé), Aucune déclaration de type de retour et aucun nom.
Jetons un coup d'oeil à cet exemple.
(int a, int b) -> {return a > b}
Dans votre cas, vous pouvez faire quelque chose comme ci-dessous:
schedulerFuture = taskScheduler.schedule(new Runnable() {
@Override
public void run() {
// task details
}
}, this);
Pour lambdas:
Côté gauche est des arguments, ce que vous prenez. Inclus dans ()
sont tous les arguments que cette fonction prend
->
indique que c'est une fonction qui prend ce qui est à gauche et le transmet à droite pour le traitement
Le côté droit est le corps-ce que fait le lambda. Inclus dans {}
est tout ce que cette fonction fait
Après avoir compris cela, il vous suffit de savoir que cette construction passe une instance de classe correspondante (regardez ce qui est le type d'argument attendu dans l'appel schedule()
) avec sa seule méthode faisant exactement la même chose que l'expression lambda que nous venons d'analyser.
Les expressions Lambda expriment essentiellement des instances d'interfaces fonctionnelles. Dans un moyen d'expression Lambda sera: (lambda opérateur params) -> {corps}
() - > Système.hors.println ("cela signifie que L'expression Lambda ne prend aucun paramètre");
(P) - > Système.hors.println ("expression Lambda avec un paramètre:" + p);