java8中的lambda定义的函数该如何引用
PHP中文网
PHP中文网 2017-04-18 09:18:55
0
2
299

定义好的函数,不知道该如何使用。

// 不知道怎么引用
BinaryOperator<Long> add = (x, y) -> x + y;
PHP中文网
PHP中文网

认证高级PHP讲师

répondre à tous(2)
伊谢尔伦
public class Main {
    
    private long t, u;
    
    private Long test(BinaryOperator<Long> b) {
        return b.apply(t, u);
    }
    public static void main(String[] args) {
        
        Main m = new Main();
        m.t = 1; m.u = 2;
        BinaryOperator<Long> b = (x, y) -> x + y;
        System.out.println(m.test(b));
    }
}

Il est inutile de le retirer seul. Lambda définit uniquement la méthode de fonctionnement des données, c'est-à-dire qu'il définit une fonction. Spécifiquement où l'utiliser, vous devez définir une méthode avec le paramètre étant une expression lambda (interface fonctionnelle), puis appeler l'opération réelle de lambda (qui fonctionne dans la définition de l'interface) à l'intérieur de la méthode, comme accepter.

刘奇

Ce que

Lambda définit n'est pas une fonction, c'est juste une abréviation d'une classe anonyme, et ce qu'elle génère est un objet. Tout comme dans votre exemple, l'objet BinaryOperator<Long> qu'il génère est alors un objet instance de cette classe. Comment l'utiliser est la même que comment utiliser l'objet.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!