Maison >Java >javaDidacticiel >Quel est le champ d'utilisation de Java Lambda

Quel est le champ d'utilisation de Java Lambda

PHPz
PHPzavant
2023-05-03 17:13:071235parcourir

1. Accédez aux variables locales

Vous pouvez accéder aux variables locales finales en dehors des expressions lambda :

final int num = 1;
Converter<Integer, String> stringConverter =
        (from) -> String.valueOf(from + num);
 
stringConverter.convert(2);     // 3

Mais c'est différent de l'anonyme objets Ce qui est intéressant, c'est que la variable num ne doit pas nécessairement être finale. Tenter de modifier la valeur de num dans une expression lambda n'est pas non plus autorisé.

2. Accéder aux variables membres et aux variables statiques

Contrairement aux variables locales, nous pouvons accéder aux variables membres dans les expressions lambda Ou lire et écrire droits sur les variables statiques. Ce comportement d'accès est très typique pour les objets anonymes.

class Lambda4 {
    static int outerStaticNum;
    int outerNum;
 
    void testScopes() {
        Converter<Integer, String> stringConverter1 = (from) -> {
            outerNum = 23;
            return String.valueOf(from);
        };
 
        Converter<Integer, String> stringConverter2 = (from) -> {
            outerStaticNum = 72;
            return String.valueOf(from);
        };
    }
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer